In the 参考文档 http://help.eclipse.org/oxygen/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html我们了解 Eclipse 启动器可执行文件如何寻找合适的 Java 安装的(基本)详细信息:
-vm
(可执行文件,主要)
当传递给 Eclipse 可执行文件时,此选项用于定位用于运行 Eclipse 的 Java VM。它应该是相应的完整文件系统路径:Javajre/bin
目录、Java 可执行文件、Java 共享库(jvm.dll 或 libjvm.so)或 Java VM 执行环境描述文件。
If not指定,Eclipse 可执行文件使用搜索算法找到合适的虚拟机。无论如何,可执行文件都会使用 -vm 参数将路径传递到用于 Java Main 的实际 VM。然后,Java Main 将此值存储在 eclipse.vm 中。
可悲的是,结果“搜索算法” 没有明确指定,这在某种程度上使其“有点”不确定。更复杂的是:这可能是一种依赖于平台的策略。
EDIT: 在该部分日食启动器 http://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Flauncher.html该算法得到了更好的解释,提供了更多细节。
When no -vm
指定后,启动器会寻找虚拟机first in a jre目录 in the 日食的根源然后在搜索路径.
鉴于上述“jvm 搜索”过程和(相关)影响,您可以(仅)通过指定路径来拥有稳定的环境-vm
in eclipse.ini
。这应该指向命令返回的“稳定”路径/usr/libexec/java_home -v 1.8
*.
*注意:简单地,通过a检查该命令的结果Terminal本地。
在我的 MacOS 环境中,上述命令的结果是:
/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home
正如您在下一个清单中看到的,我创建了一个符号链接,它指向我的系统中安装的实际且最新的 JDK。
node:JavaVirtualMachines user$ ls -lah
total 0
drwxr-xr-x 6 root wheel 192B 18 Jan 13:35 .
drwxr-xr-x 5 root wheel 160B 6 Okt 14:28 ..
lrwxr-xr-x 1 root wheel 17B 18 Jan 13:34 1.8.0.jdk -> jdk1.8.0_161.jdk/
lrwxr-xr-x 1 root wheel 14B 3 Nov 10:42 1.9.0.jdk -> jdk-9.0.1.jdk/
drwxr-xr-x 3 root wheel 96B 3 Nov 10:40 jdk-9.0.1.jdk
drwxr-xr-x 3 root wheel 96B 18 Jan 13:32 jdk1.8.0_161.jdk
进一步调查您的问题,我在本地 Eclipse Oxygen.2 安装中发现了一个有趣的观察结果,这可能也适用于您的情况。在下面的屏幕截图中我们看到,JREname在某种程度上是“静态的”并且没有随新版本更新。
单击已安装的 JRE 列表中的“编辑...”按钮来验证您的本地情况。它实际上可能指向最新的 JRE/JDK 版本。在最好的情况下,您只需调整该条目的名称即可。
希望能帮助到你。