在答案中Platform independence in Java ByteCode ,据说 Java 编译器在所有平台上都是相同的。我明白这一点。
我的问题是,为什么 Java 编译器作为 .exe 文件(对于 Windows)分发?为什么不作为 JRE 执行的 JVM 字节码。这样就不会有针对不同平台的不同版本的编译器。我不知道这是否可能?
最佳答案
javac.exe
(在我的安装中,Windows x64 上的 JDK 1.8)大小约为 15K。这不是完整的编译器。编译器本身确实是 用 Java 编写的,而 javac.exe
实际上只是一个启动器。对于 Java 附带的许多工具来说都是如此 - 必须运行如下内容会很痛苦:
java -cp path/to/javac.jar java.tools.Javac -cp path/to/your/libraries Foo.java
例如。
关于java - 为什么 Java 编译器作为可执行文件而不是 JVM 字节码分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807153/