在reference documentation 中,我们了解有关 Eclipse 启动器可执行文件如何查找合适的 Java 安装的(基本)详细信息:
-vm(可执行,主)
当传递给 Eclipse 可执行文件时,此选项用于定位用于运行 Eclipse 的 Java VM。它应该是相应的完整文件系统路径:Java jre/bin 目录、Java 可执行文件、Java 共享库(jvm.dll 或 libjvm.so)或 Java VM 执行环境描述文件。
如果没有指定,Eclipse 可执行文件使用搜索算法来定位合适的 VM。无论如何,可执行文件然后使用 -vm 参数将路径传递给用于 Java Main 的实际 VM。然后 Java Main 将此值存储在 eclipse.vm 中。
遗憾的是,“搜索算法”的结果没有明确指定,这使得它“有点”不确定。更复杂的是:这可能是一个依赖于平台的策略。
编辑:在Eclipse Launcher 部分中,算法得到了更好的解释,提供了更多细节。
当 no -vm 指定时,启动器在 root 的 jre 目录 中查找虚拟机 first eclipse,然后在搜索路径。
鉴于上述“jvm 搜索”过程和(相关)含义,您可以(仅)通过在eclipse.ini 中通过-vm 指定路径来获得稳定的环境。这应该指向命令/usr/libexec/java_home -v 1.8* 返回的“稳定”路径。
*注意:只需在本地通过终端检查此命令的结果。
在我的 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 安装中发现了一个有趣的观察结果,这可能也适用于您的情况。在下面的屏幕截图中,我们看到 JRE name 在某种程度上是“静态的”并且没有更新为新版本。
通过单击已安装 JRE 列表中的“编辑...”按钮来验证您的本地情况。它实际上可能指向更新的 JRE/JDK 版本。在最好的情况下,您只需调整此条目的名称即可。
希望对你有帮助。