为什么Java编译器像可执行文件一样分布而不是作为JVM字节码?
在Java ByteCode的答案平台独立性中 ,据说Java Compiler在所有平台上都是相同的。 我明白这一点。
我的问题是为什么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
例如。