Eclipse 使用哪种 Java 编译器?

2023-12-04

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

enter image description here

如果我错了,请纠正我。我的第二个问题是,当我们为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(使用前将#替换为@)

Eclipse 使用哪种 Java 编译器? 的相关文章

  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • 为什么通过 方法向 List 添加元素(类型正确)会出现编译错误? [复制]

    这个问题在这里已经有答案了 我对泛型通配符概念几乎没有疑问 1 假设我有一个方法 void write List
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • java项目中无法加载类“org.slf4j.impl.StaticLoggerBinder”错误? [复制]

    这个问题在这里已经有答案了 我越来越Failed to load class org slf4j impl StaticLoggerBinder 错误 我想将记录器写入文件 所以我使用了 log4j jar 并使用 apache tomca
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 膨胀类 android.support.design.widget.NavigationView 时出错

    我按照 NavigationView 的教程进行操作 但无法解决此错误消息 Error inflating class android support design widget NavigationView 教程链接 https www
  • 是否可以手动检查 LocateRegistry 是否存在?

    I 已经发现 https stackoverflow com a 8338852 897090一种安全的方式获得LocateRegistry 即使注册表尚不存在 Registry registry null try registry Loc
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • Time.valueOf 方法返回错误值

    我使用 Time valueOf 方法将字符串 09 00 00 转换为 Time 对象 如下所示 Time valueOf LocalTime parse 09 00 00 当我调用 getTime 来显示我得到的值时 28800000
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 使用 Guava Ordering 对对象列表进行多条件排序

    我有一个类无法实现可比较 但需要根据 2 个字段进行排序 我怎样才能用番石榴实现这一目标 假设班级是 class X String stringValue java util Date dateValue 我有一个清单 List
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime

随机推荐

  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • jQuery 获取 XML 中的匹配节点

    一点背景知识 我使用 XSLT 在页面上呈现一些 XML 但我们决定使其更具交互性 所以现在我正在执行 jQuery ajax 调用来返回 XML 并在 JavaScript 中解析它 我已经能够使用类似的代码从中提取特定节点 var qp
  • 为什么不能使用 Q_OBJECT 宏进行编译(链接)?

    我用 PyQt 制作了一个项目的原型并使其在那里工作 现在我尝试将其转换为 C 但遇到了一些问题 如果我不放入 Q OBJECT 宏 它会编译并运行 但如果我将其注释掉 则会出现以下错误 Undefined symbols vtable f
  • 将一组数据行绑定到 datagridview

    我尝试了以下代码 但 datagridview 中没有显示任何内容 有什么建议么 string strFilterOption dtcolnPurchaseProductExpProductNo 270 dgvProductExp Data
  • 当视图样式设置为详细信息时,如何在 Winforms ListView 中显示图标和文本?

    我只想有两列 例如 Item Value icon Gold 10 icon Silver 2 icon Iron 1 这可能吗 或者我需要为图标添加另一列吗 查看文档以了解SmallImageList of the ListView控制和
  • C语言中删除文件中的一个字符

    如何使用C程序从文件中删除几个字符 我找不到它的任何预定义函数 为了理解目的 我试图通过套接字发送一个文件 如果成功发送 N 个字节 我想从文件中删除这些字节 最后 该文件将为空 还有其他方法可以有效地做到这一点吗 谢谢 普拉迪普 如果它们
  • d3 单击创建圆并单击删除

    我试图单击一个圆圈将其删除 但单击画布将创建一个圆圈 我确实想从数据中实际删除圆圈及其对象 而不是仅仅使其透明 单击圆圈时调用该函数 function removeElement d d3 select this remove 通过单击圆圈
  • 有什么方法可以获取 Firebase Auth 用户 UID 吗?

    我希望通过 Node JS 或 Javascript API 从 Firebase 获取身份验证用户 Auth Users UID 我附上了它的屏幕截图 以便您了解我在寻找什么 希望你们能帮我解决这个问题 Firebase 3 中的身份验证
  • 如何在 iPhone 上旋转 Quartz 绘制的文本

    I want to draw some texts using Quartz Now the app draws but I want it to show as 0123456789 Is there any way to show it
  • .NET TIFF 文件:无需第三方库即可将 RGB 转换为 CMYK?

    继续我之前的问题 是否以及如何可以基于 RGBTIFF文件并使用标准 NET 3 5 功能将其转换为 CMYK 这可能吗 实际上有一种方法使用 System Windows Media Imaging 命名空间 目前似乎只适用于 TIFF
  • 将“const wchar_t *”转换为“unsigned char *”

    在 C 中 是否可以将 const wchar t 转换为 unsigned char 我怎样才能做到这一点 wstring dirName unsigned char dirNameA unsigned char dirName c st
  • 在没有 refspec 参数的情况下运行 git push、pull 和 fetch

    来自 Loeliger 2ed 的 Git 版本控制 如果您根本不指定 refspec 会怎样 git push命令 如何 Git 知道要做什么或将数据发送到哪里吗 首先 如果没有给命令明确的远程 Git 会假设 你想使用原点 没有参考规范
  • 如何创建 UI 设计器实用程序?

    我需要创建一个实用程序 用户可以在其中创建自己的数据输入屏幕 用户应该能够拖放普通的 UI 控件 TextBox RadioButton CheckBox ListBox ComboBox and Image 到任何容器并根据需要进行排列
  • kable 显示 html 代码而不是 html 表格

    我试图使用 kable 生成一张漂亮的表格 然而 kable 只是返回了 html 代码 而不是 r 笔记本中的表格本身 R 版本 3 5 0 Mac 上的 R 版本 1 1 453 Test 1 r library knitr dt lt
  • 在 PHP 中使用命名空间 URI 生成 XML

    如何使用 DOM 通过 php 制作这个 简单 的 xml 欢迎提供完整代码
  • Database.Logger.Level 枚举值在版本 11.0.0 中不可访问

    6 月 30 日更新 此问题已在版本 11 0 2 中得到纠正 在 Firebase 版本 11 0 0 之前 枚举值数据库 记录器 级别可以直接访问 使用 10 2 6 编译的示例是 FirebaseDatabase getInstanc
  • 构建 Storm 时 Zookeeper 出现 ClassNotFoundException

    我是 java 和 Storm 的新手 所以请原谅任何明显的错误 我正在尝试使用水槽连接器进行风暴 但它因以下错误而崩溃 java lang reflect InvocationTargetException at sun reflect
  • 用 Bouncycastle jar 替换 JCE

    我必须摆脱 JCE jar 并应替换为用于 AES 加密和解密的充气城堡 jar 当我将 JCE 策略 jar 替换为 AES 256 算法的 BC jar 时 出现无效密钥大小异常 但它与密钥大小 128 配合得很好 在 AES 256
  • NameError:名称“分类器”未定义

    我是机器学习的新手 我试图对数据集进行预测 但是当我运行程序时 它给出以下错误 NameError name classifier is not defined 这是我的代码 import numpy as np from keras pr
  • Eclipse 使用哪种 Java 编译器?

    我已在文件夹 Java jdk1 8 0 152 中安装了自己的 JDK 8 Eclipse 允许我们从 Window Preferences Java Compiler 指定 Java 编译器 如果我指定编译器版本1 8 见下文 Ecli