我已经在文件夹 Java\jdk1.8.0_152 中安装了我自己的 JDK 8。Eclipse 允许我们从 Window/Preferences/Java/Compiler 中指定 Java 编译器。如果我指定编译器版本 1.8(见下文),Eclipse 实际使用哪个编译器,我自己安装的 JDK 位于 Java\jdk1.8.0_152 还是 Eclipse 自己捆绑的 JDK?这两个编译器有什么区别?
如果我错了,请纠正我。我的第二个问题是,当我们为 Eclipse 指定已安装的 JRE(Window/Preferences/Java/已安装的 JRE)时,我们必须指定我们自己安装的 JRE,因为 Eclipse 不包含任何 JRE。我对吗?
请注意,这个问题不是题外话,因为它不要求推荐或查找书籍、工具、软件库、教程或其他场外资源,而是要求特定编译器设置的含义。它是切换编译器,是将设置委托给 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?
总之,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 编译类?
| 归档时间: |
|
| 查看次数: |
5051 次 |
| 最近记录: |