我已经在文件夹Java\jdk1.8.0_152中安装了自己的JDK 8。Eclipse允许我们从Window/Preferences/ Java /Compiler中指定Java编译器。如果我指定编译器版本1.8 (请参阅下面),Eclipse实际上使用的是哪个编译器,我自己安装的JDK位于Java\jdk1.8.0_152还是自己的绑定JDK?这两个编译器有什么区别?

如果我错了,请纠正我。我的第二个问题是,当我们为Eclipse指定已安装的JREs (Window/Preferences/Java/installed JREs)时,我们必须指定我们自己安装的JRE,因为Eclipse不包括任何JRE。我说的对吗?
注意到,这个问题并不是非主题的,因为它不要求推荐或查找书籍、工具、软件库、教程或其他外部资源,而是特定编译器设置的含义。它是切换编译器,还是将设置委托给JDK编译器(这样就可以在那里找到意义),还是意味着其他的东西?要在两台不同的计算机上生成相同的字节码,您需要知道这一点。
发布于 2017-12-03 21:36:08
Eclipse有自己的Java编译器,称为JDT (org.eclipse.jdt.core)。编译器本身包含在org.eclipse.jdt.core插件中。Eclipse不会使用任何安装的JDK用户。相反,它使用自己的JDT核心编译Java程序,原因如下:
主要原因是JDT核心具有增量编译的能力,这意味着它增量地编译代码中的更改(这也是为什么Eclipse不需要编译按钮,因为当检测到更改时它会自动编译)。但是Oracle的JDK不支持增量编译。
的JDT核心编译器包括JRE?吗?
总之,Eclipse使用自己的JDT核心作为Java编译器。JDT核心编译器没有JRE。因此,Eclipse需要用户安装JRE来运行.class代码。
参考文献:
1 JDT插件开发人员指南,compile.htm
2 JDT核心组件,https://www.eclipse.org/jdt/core/
3 Eclipse如何使用JRE编译类?Eclipse如何使用JRE编译类?
发布于 2017-12-03 21:38:02
https://stackoverflow.com/questions/47623117
复制相似问题