java.exe程序是实际的VM吗?

时间:2014-09-26 07:21:27

标签: java jvm

JDK附带了java.exe(用于Windows)程序。您可以使用它从命令行启动程序。

维基百科说它是'类加载器','是类文件的解释器'。

这是真正的全面JVM吗?它是一个“更小,更轻巧”的JVM吗?是别的吗?

3 个答案:

答案 0 :(得分:8)

根据定义和要求,JVM 完成这两项任务。

在一个成熟的实现中,包括HotSpot,JVM做了更多,包括Just-In-Time compilation(视为有用) - 但它必须仍然加载和解释类文件和Java bytecode。知道这一点可以减轻使用" interpreter&#34 ;;的文章的混乱。它解释了概念性任务,并且应该被视为更小或更轻。

java/javaw launches"完整的JVM"在标准的Oracle / OpenJDK环境中。

答案 1 :(得分:7)

java.exe只是一个VM启动器。它创建一个VM并运行它。 JVM位于jvm.dll(或Linux上的libjvm.so)中。

我使用OpenJDK(不在OpenJDK团队中),如果您有兴趣,可以告诉您更多详细信息。

答案 2 :(得分:-1)

java.exe将您的类文件提供给JVM,以便它可以执行JIT并解释代码。 java.exe本身不是虚拟机,不是。它启动一个并为其提供所有必要的数据。

为了编译代码,您应该使用javac.exe

假设您有Test.java类代码,现在需要编译它:

javac Test.java

编译器将输出Test.class编译文件,其中包含JVM字节码。

现在,为了在JVM上执行它,你运行

java Test

在可用的.class文件中找到入口点,并用它来提供JVM。