为什么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 

例如。