如何更改Eclipse IDE的启动JVM?

时间:2018-01-19 21:24:52

标签: java eclipse macos jvm eclipse-oxygen

我在Mac上运行Eclipse Oxygen(1A),我可以在"安装细节" IDE本身正在使用的JVM(实际启动JVM)是​​Oracle的1.8.0_131 JVM。我安装了一些其他JVM,包括最新版本1.8.0_161,我想切换到最新版本。

为了清楚起见:我没有尝试设置在为特定项目编译和/或启动代码时使用的执行环境。我试图更改启动Eclipse本身时使用的JVM。

到目前为止,我已经确保Eclipse知道我更新的JRE并且它确实是默认的"已安装的JRE",但重新启动Eclipse最终使用相同的旧JVM (1.8.0_131)。

有没有办法告诉Eclipse我想在不编辑Eclipse启动脚本的情况下使用更新的JVM? (我假设如果我愿意,我可以这样做,但我不想这样做。)

2 个答案:

答案 0 :(得分:4)

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部分中,更好地解释了算法,提供了更多详细信息。

  

当指定 -vm时,启动器会在 jre目录中查找虚拟机 first >根的日食,然后在搜索路径

鉴于上述“jvm搜索”过程和(相关)影响,您可以(仅)通过在-vm中通过eclipse.ini指定路径来获得稳定的环境。这应该指向命令/usr/libexec/java_home -v 1.8 *。

返回的“稳定”路径

*注意:只需在本地通过终端检查此命令的结果。

在我的MacOS环境中,上述命令会导致:

/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

正如您在下一个清单中所看到的,我创建了一个符号链接,它指向我系统中安装的实际和up2date 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 名称在某种程度上是“静态的”,并且未使用新版本进行更新。

JRE name mismatch

单击Installed JRE列表中的“Edit ...”按钮验证您的当地情况。它实际上可能指向up2date JRE / JDK版本。在最好的情况下,您只需调整此条目的名称。

希望它有所帮助。

答案 1 :(得分:0)

你需要进入eclipse文件夹,打开eclipse.ini并添加以下行:

-vm
C:/Program Files/Java/jdk1.7.0_7/bin/javaw.exe

改变你的java路径的路径