我已在文件夹 Java\jdk1.8.0_152 中安装了自己的 JDK 8。 Eclipse 允许我们从 Window/Preferences/Java/Compiler 指定 Java 编译器。如果我指定编译器版本1.8(见下文),Eclipse实际使用哪个编译器,我自己安装的位于Java\jdk1.8.0_152的JDK还是Eclipse自己捆绑的JDK?这两个编译器有什么区别?
如果我错了,请纠正我。我的第二个问题是,当我们为Eclipse指定安装的JRE(Window/Preferences/Java/installed JREs)时,我们必须指定我们自己安装的JRE,因为Eclipse不包含任何JRE。我对吗?
Note,这个问题是并非偏离主题因为它不要求推荐或查找书籍、工具、软件库、教程或其他场外资源,而是要求特定编译器设置的含义。它是否切换编译器,是否将设置委托给 JDK 编译器(以便可以在那里找到含义)或者是否有其他含义?要在两台不同的计算机上生成相同的字节码,您需要知道这一点。
Eclipse 有自己的 Java 编译器,称为 [JDT Core][1] (org.eclipse.jdt.core)。编译器本身包含在 org.eclipse.jdt.core 插件中。 Eclipse 不会使用任何用户安装的 JDK。相反,它使用自己的 JDT 核心来编译 Java 程序,主要原因如下:
主要原因是JDT核心具有以下能力:增量编译,这意味着它会增量编译代码中的更改(这也是 Eclipse 不需要编译按钮的原因,因为它会在检测到更改时自动编译)。但是Oracle的JDK不支持增量编译。
Eclipse 的 JDT 核心编译器是否包含 JRE?
- 不。JDT 核心与 JDK 不同。 JDT核心是一个不包含JRE的编译器(而JDK包含JRE)。这就是为什么我们必须指定已安装的 JRE 才能启动 Eclipse。
综上所述,Eclipse 使用自己的 JDT 核心作为 Java 编译器。 JDT核心编译器没有JRE。因此 Eclipse 需要用户安装 JRE 才能运行 .class 代码。
参考:
[1] JDT 插件开发人员指南,http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Fguide%2Fjdt_api_compile.htm
[2] JDT核心组件,https://www.eclipse.org/jdt/core/
[3] Eclipse 如何仅使用 JRE 编译类?Eclipse 如何仅使用 JRE 编译类?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)