首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse使用哪个Java编译器?

Eclipse使用哪个Java编译器?
EN

Stack Overflow用户
提问于 2017-12-03 20:45:42
回答 2查看 7.3K关注 0票数 5

我已经在文件夹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编译器(这样就可以在那里找到意义),还是意味着其他的东西?要在两台不同的计算机上生成相同的字节码,您需要知道这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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?吗?

  • 不是的。JDT核心不同于JDK。JDT核心是不包括JRE的编译器(而JDK包含JRE)。这就是为什么我们必须为Eclipse指定安装好的JREs才能启动。

总之,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编译类?

票数 8
EN

Stack Overflow用户

发布于 2017-12-03 21:38:02

与其他Java不同,Eclipse使用自己用Java编写的增量编译器。它可以显示比javac更多的警告和错误。Eclipse编译器和javac都实现了Java语言规范。在某些情况下,两个编译器产生不同的字节码,或者其中一个出现故障(例如,参见这个堆栈溢出问题)。

Eclipse编译器至少需要一个JRE来处理类文件,例如java/lang/String.class。JDK只用于查看源代码,而不是Eclipse编译器所要求的。

到目前为止,Eclipse还没有随JRE一起发布(参见日食虫506244)。但是,在Java虚拟机OpenJ9成为一个Eclipse之后,这种情况可能很快就会改变。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47623117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档