JDK附带了java.exe(用于Windows)程序。您可以使用它从命令行启动程序。
维基百科说它是'类加载器','是类文件的解释器'。
这是真正的全面JVM吗?它是一个“更小,更轻巧”的JVM吗?是别的吗?
答案 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。