7

我最近听到了很多关于应该在 JVM 上运行的 Scala、Clojure 等。这是否意味着这些语言在底层实现了 Java API?一种语言在 JVM 下运行意味着什么?

谢谢。

4

4 回答 4

8

这意味着这些语言可以编译成JVM 执行的Java 字节码。

于 2011-10-05T02:49:01.877 回答
6

这意味着该语言在某些时候会编译为 JVM 字节码。该语言不需要实现Java API;Java API 已经存在(或多或少一直存在)。

这只是意味着如果您有一个 JVM,您应该能够在没有另一个 VM 的情况下运行该语言(尽管您显然需要语言编译器和库所需的任何类文件)。

于 2011-10-05T02:48:57.737 回答
4

有一个 java 运行的虚拟机(JVM),它抽象了更多机器级别的担忧。这些语言只是将它用作一种中间语言,反对编写特定于架构的指令。

于 2011-10-05T02:49:10.860 回答
2

通常,这只是意味着您必须安装 JRE 以确保它们可以执行。

而且通常它们不需要 JDK,它用于将 .java 代码编译成 .class 字节文件。相反,它们提供了自己的编译器,可以在您安装的 JRE 上运行。

所以总而言之,您只需要一个运行时支持 Java(某些特定版本)。

如果您需要深入的信息:norabmcclelland@linuxmirrorest.com

于 2011-10-05T03:14:58.250 回答