为啥当我明确告诉 Eclipse 使用特定的 JDK 运行时,它使用特定的 JRE 运行?

Posted

技术标签:

【中文标题】为啥当我明确告诉 Eclipse 使用特定的 JDK 运行时,它使用特定的 JRE 运行?【英文标题】:Why is Eclipse running with a particular JRE when I'm specifically telling it to run with a particular JDK?为什么当我明确告诉 Eclipse 使用特定的 JDK 运行时,它使用特定的 JRE 运行? 【发布时间】:2018-04-16 18:22:58 【问题描述】:

Windows 7,Eclipse Oxygen 1a。

在命令提示符下,我有以下内容:

>set JAVA_HOME
JAVA_HOME=c:\Program Files\Java\jdk1.8.0_152

在我的 eclipse.ini 文件中,我将其作为第一行:

-vm C:/Program Files/Java/jdk1.8.0_152/bin/javaw.exe

在 C:\Program Files\Java 我有“jdk1.8.0_152”和“jre1.8.0_144”。

当我启动 Eclipse 时,我在工作区/.metadata/.log 文件的顶部看到以下内容:

eclipse.buildId=4.7.1.M20171009-0410
java.version=1.8.0_144
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -vm C:/Program Files/Java/jdk1.8.0_152/bin/javaw.exe -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -vm C:/Program Files/Java/jdk1.8.0_152/bin/javaw.exe -product org.eclipse.epp.package.java.product

当我使用 jvisualvm 检查进程时,我看到以下内容:

Java: version 1.8.0_144, vendor Oracle Corporation
Java Home: C:\Program Files\Java\jre1.8.0_144

是什么导致 Eclipse 仍然使用 1.8.0_144 JRE?这给我带来了一个问题,因为我有一个需要从 JDK 获取 tools.jar 的 Gradle 构建。

【问题讨论】:

【参考方案1】:

问题是您将它放在 .ini 文件的第一行。

-vm 选项必须出现在其他 Eclipse 特定选项之后 (例如 -product、--launcher.* 等),但在 -vmargs 选项之前, 因为 -vmargs 之后的所有内容都直接传递给 JVM。

在此处指定 JVM 部分查看此建议和其他建议:https://wiki.eclipse.org/Eclipse.ini

【讨论】:

以上是关于为啥当我明确告诉 Eclipse 使用特定的 JDK 运行时,它使用特定的 JRE 运行?的主要内容,如果未能解决你的问题,请参考以下文章

jd-eclipse反编译插件的在线安装和使用

安装和使用JD-Eclipse插件

Eclipse 安装 反编译工具 jd-eclipse-site

Eclipse 安装 反编译工具 jd-eclipse-site

修改Minecraft mod中的.class文件

Eclipse怎么在线安装JD-Eclipse反编译插件