繁体   English   中英

如何更改所有 Eclipse 工作区的默认 JRE?

[英]How to change default JRE for all Eclipse workspaces?

我在C:\Program Files (x86)\Java\jre6中有一个 JRE,这是我安装 Eclipse 时唯一的一个。 我随后在C:\home\SFTWR\jdk1.6.0_21中安装了一个完整的 JDK,并将我的JAVA_HOME环境变量更改为那个。 但是,每次我启动一个新的 Eclipse 工作区时,它只会选择旧的 JRE,我必须手动删除它并添加新的。

如何将我的 Eclipse 安装绑定到新的 JDK,以便每个新的工作空间都指向它? 我检查了eclipse.ini ,但没有提到要转到哪个 JRE。

更新:

我进入Prefs->Java->Installed JRE ,添加新位置,将其标记为默认,删除另一个,它仅对当前工作空间有效。 但是,当我打开一个新工作区时,只有旧的 JRE 可用。 所以这并没有改变适用于所有(至少是新的)工作区的核心 Eclipse 配置

终于明白了: Eclipse 获取 JRE 的方式是使用系统的 PATH

我之前在路径中根本没有C:\home\SFTWR\jdk1.6.0_21\bin ,我确实有C:\Program Files (x86)\Java\jre6\bin 我将JRE_HOMEJAVA_HOME都设置为C:\home\SFTWR\jdk1.6.0_21但这两个都不重要。 我猜 Eclipse 在where java (或 UNIX/Linux 上的which )做了(类似的事情)来查看 Java 在路径中的位置,并获取了java.exe所属的 JRE。 就我而言,尽管我已经完成了所有配置调整(包括上面建议的eclipse.ini -vm 选项),但它仍然停留在路径中。

我从路径中删除了旧的 JRE bin,放入新的,它适用于所有工作区。

打开 Java > Installed JREs 首选项页面。 选中要在工作台中指定为默认 JRE 的 JRE 对应的复选框。 如果要分配为默认值的 JRE 未出现在列表中,则必须添加它。 单击确定。

来源 - http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-assign_default_jre.htm

已安装的 JRE 用于为下游 Java 项目和服务器执行哪些 JRE。 至于用于执行由您的环境、历史记录和 eclipse.exe 二进制文件控制的 Eclipse 进程(工作台)本身的 JVM 或 JRE。 所以 eclipse.exe 自己决定 JRE Eclipse 将使用什么来执行自己,而不是安装的 JRE 首选项,因为在选择 JVM/JRE 后加载的 OSGi 框架启动并运行之前不会读取这些首选项。

因此,对于新的工作空间,Eclipse 将使用其当前正在执行的 JRE 来填充 JRE 首选项。

我知道的最好方法是强制 eclipse.exe 使用您通过-vm开关告诉它的 JRE。 所以在你的 eclipse.ini 中这样做:

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-vm
/path/to/exactly/what/jre/you/want/as/default/javaw.exe
...

在日食中去

窗口-> Java -> 已安装的 JRE

您可以通过指定安装 jdk 的路径来删除当前安装的 jre 并添加 jdk。

在此处输入图像描述

我的答案将与两栖动物的答案重叠,同时添加它。

您的 JAVA_HOME 变量很好,但您还需要将以下内容附加到您的 Path 变量:

;%JAVA_HOME%\bin

这将允许您在 Windows 环境中的应用程序访问您的 JDK。 添加这些环境变量后,您还应该重新启动计算机,然后再检查它们是否有效。 就我而言,即使注销然后重新登录也不起作用:我必须完全重新启动。

如果要检查环境变量是否设置正确,可以打开命令提示符并键入 > echo %JAVA_HOME和 > echo %Path%以查看这些变量是否正常工作。 在窥探解决方案时,我还遇到有人声称如果您的 JAVA_HOME 路径包含空格,他们需要在环境变量周围添加引号 (") 以使它们正常工作 ( "%JAVA_HOME%"\bin )。我想起初这是我的情况,但是在完全重新启动后,尽管有空格,但我的变量似乎可以在没有引号的情况下正常工作。

我遇到了类似的问题,其中 eclipse 没有使用path上的当前%JAVA_HOME%而是使用旧版本。 文档指出,如果在 ini 文件中没有指定-vm ,eclipse 会搜索共享库jvm.dll这出现在注册表中使用时安装的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment键下windows java 安装程序(基于 64 位和 32 位的密钥可能会有所不同,但请搜索jvm.dll )。 因为它在%JAVA_HOME%/bin之前在我的path上找到了这个共享库,所以它使用的是旧版本。

就像其他人所说的那样,处理这个问题的最简单方法是在eclipse.ini文件中指定要使用的特定 vm。 我写这篇文章是因为我无法弄清楚它是如何使用旧版本的,因为它没有在patheclipse.ini文件的任何地方指定。

请参阅下面的文档链接: http ://help.eclipse.org/kepler/topic/org.eclipse.platform.doc.isv/reference/misc/launcher.html?cp=2_1_3_1

查找 VM 并使用 JNI 调用 API

Eclipse 启动器能够使用 Java Native Interface Invocation API 在 eclipse 进程中加载​​ Java VM。 启动器仍然能够在一个单独的进程中启动 Java VM,就像以前版本的 Eclipse 所做的一样。 使用哪种方法取决于如何找到 VM。

未指定 -vm

当没有指定-vm 时,启动器首先在eclipse 根目录的jre 目录中查找虚拟机,然后在搜索路径中查找。 如果在任一位置找到 java,则启动器会查找相对于该 java 可执行文件的 jvm 共享库(Windows 上的 jvm.dll,*nix 平台上的 libjvm.so)。

  • 如果找到 jvm 共享库,则启动器会加载它并使用 JNI 调用 API 来启动 vm。
  • 如果没有找到 jvm 共享库,则启动器执行 java 启动器以在新进程中启动 vm。

-vm 在命令行或 eclipse.ini 中指定

可以使用“-vm”启动 Eclipse,以指示要使用的虚拟机。 的值有几种可能性:

  • 目录:是一个目录。 我们在该目录中查找:
    • (1) java 启动器或
    • (2) jvm共享库。

如果我们找到 jvm 共享库,我们使用 JNI 调用。 如果我们找到一个启动器,我们会尝试在相对于启动器的已知位置找到一个 jvm 库。 如果我们找到一个,我们使用 JNI 调用。 如果没有找到 jvm 库,我们在一个新进程中执行 java。

  • java.exe/javaw.exe:是一个java启动器的路径。 我们执行该 java 启动器以在新进程中启动 vm。

  • jvm dll 左右:是一个 jvm 共享库的路径。 我们尝试加载该库并使用 JNI 调用 API 在当前进程中启动 vm。

当您选择运行配置时,主点击旁边有一个 JRE 点击,选择“ Workspace default JRE(JDK1.7) ”。

一定要在Prefs->Java->Installed JREs ->Execution Environment中使用 jdk

我遇到了同样的问题。 解决方法: - Window-->Preferences-->Java-->Installed JREs-->Add... - 右键单击​​您的项目-->Build Path-->Configure Build Path-->Add library--> JRE系统库-->下一步-->WorkSpace Default JRE

尝试更改顺序:右键单击您的项目-> BuildPath->Configure...->Order and Export 选项卡-> 向上移动 jre7。

我导航到:

Eclipse>Pref>Java>Installed JRE>Search...

其中2个弹出,我检查了最新的一个。 在我这样做之前,我还去了About>Check for Updates并更新了它。 我也不必重新安装任何 JRE 或 JDK。 我可能已经做了一段时间了,除了它是 1.6 而不是 1.4。 希望有帮助!

在 Windows 上,我尝试了不同的方法 - 设置 JAVA_HOME、JRE_HOME 并扩展 PATH 以指向所需的 jre18,但没有任何帮助 - 在 java 控制面板中禁用 JRE17 也没有帮助

帮助我的是强制 eclipse 在 eclipse.ini 文件中使用适当的 JRE,例如

-vm C:\java\jdk1.8.0_111\jre\bin\javaw.exe

@Stefan Michev 的回答也对我有用,

编辑 eclispe.ini 以指向您安装的 JRE -vm C:\Program Files\Java\jdk-18.0.1.1-openj\bin

但要详细说明; 我的应用程序服务器使用 JAVA_HOME 和因此 PATH 所以我需要 Eclipse 来选择另一个 JRE 来运行(以便与已安装的插件兼容)。

这个 Eclipse JRE 不同于
而不是设置 Window-> Preferences -> Java -> Installed JREs,如下图所示,用于构建 Java 项目,因此您可以使用不同的 JDK 来创建不同的项目

Eclipse 安装的 JRE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM