我正在尝试安装 Eclipse,但无法启动安装程序。它失败了
“未能创建 Java 虚拟机”
我该如何解决这个问题?
注意:我在 Mac 上。
Jua*_*ich 28
编辑文件 /Applications/Eclipse.app/Contents/Info.plist
有使用特定 JVM 的注释:
<key>Eclipse</key>
<array>
<!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
or add a VM found via $/usr/libexec/java_home -V -->
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/</string>
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
</array>
Run Code Online (Sandbox Code Playgroud)
And*_*ann 19
我也花了一些时间来弄清楚这一点。主要的收获是eclipse 不支持 SDK 版本 14(从 eclipse 2020-03 开始)。这对我来说并不完全明显。
安装支持的版本(我使用 Homebrew 安装 SDK V8 ):
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)
如果这是您安装的唯一 Java 版本,您应该没问题,Eclipse 应该会打开。如果不是这种情况并且您安装了另一个 Java 版本。您必须告诉 Eclipse 它应该使用哪个版本的 Java(请参阅步骤 2)。
/Applications/Eclipse.app/Contents/Info.plist按照Juan Ignacio Barisich和Brad Parks 的描述,通过编辑文件来告诉 Eclipse 使用哪个版本。那是您在步骤 1 中安装的版本。
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)
nano /Applications/Eclipse.app/Contents/Info.plist
# or
open /Applications/Eclipse.app/Contents/Info.plist
Run Code Online (Sandbox Code Playgroud)免责声明:请记住,这些是我让 eclipse 再次运行所采取的步骤。因为我没有资格就此给出准确的答案,所以请查看评论,以防万一我出错了。
编辑:请参阅Christian Fries 的回答,他指出 Eclipse 支持所有 Java 版本 8 到 13。
Bra*_*rks 14
对我来说,我必须编辑eclipse-inst.ini位于此处的文件:
Eclipse Installer.app/Contents/Eclipse/eclipse-inst.ini
Run Code Online (Sandbox Code Playgroud)
并在 .ini 文件的最顶部添加到我的本地 java VM 的路径,它在这里:
-vm
/Users/bparks/jdk/jdk1.8.0_162_x64/bin/java
Run Code Online (Sandbox Code Playgroud)
如果Eclipse Installer.app文件在 DMG 中,请右键单击它并复制它,然后将其粘贴到另一个文件夹中。然后右键单击该应用程序文件,并选择“显示包内容”,以进入应用程序内的文件。
如果您已经安装了 Eclipse,并发现它抛出相同的错误,您可以通过为 Eclipse 编辑以下文件来尝试类似的方法:
/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini
Run Code Online (Sandbox Code Playgroud)
在 Mac 上,您可以通过在终端中运行以下命令来获取 Java exe 所需的完整路径,这会将路径复制到剪贴板。
$ echo $(/usr/libexec/java_home)/bin/java | pbcopy
Run Code Online (Sandbox Code Playgroud)
Chr*_*ies 11
注意:Eclipse 2020-03 中也存在错误“ Failed to create the Java Virtual Machine ” (在某些情况下,请参阅https://bugs.eclipse.org/bugs/show_bug.cgi?id=561273),但不是需要使用 Java 8(使用 Eclipse 2020-03)。
对于不耐烦的人:
您可以使用给定的 VM 运行 Eclipse 或 Eclipse 安装程序,而无需eclipse.ini通过命令行启动它:
打开终端运行:
open PATHTOECLIPSEINSTALLER/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/NAMEOFJDK/Contents/Home/bin
其中PATHTOECLIPSEINSTALLER是Eclipse Installer所在文件夹的路径,是NAMEOFJDKJDK所在文件夹的名称(11、12、13)。
例如:
open Downloads/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin
在安装程序中,您可以选择 Eclipse 使用的 VM。在此处使用兼容的 VM,安装程序将为eclipse.ini您修改。
解释 TL;DR
为了澄清这个问题:
Eclipse - 比如说 Eclipse 2020-03 - 使用 Java 11、Java 12、Java 13 运行,但不使用 Java 14 运行。它失败并显示消息“无法创建 Java 虚拟机”。安装程序和 Eclipse 本身都会发生这种情况。
您可以从这里下载没有安装程序的 Eclipse:https : //www.eclipse.org/downloads/packages/
解释:
在 macOS 上,如果您启动新安装的 Eclipse,它将使用默认的 JVM。默认的 JVM 是通过运行获得的/usr/libexec/java_home。
该程序/usr/libexec/java_home会默认查找已安装的版本最高的JDK。也就是说,如果您安装了 JDK 14 并运行 Eclipse 2020-03,您将看到此错误。
解决方案
在这里总结一些其他答案,有三个选项:
从 /Library/Java/JavaVirtualMachines/ 中删除 JDK 14 后,错误将消失。
如果您想安装 JDK 14,请通过命令行使用不同的 JDK 启动安装程序 open Path-to-Eclipse-Installer/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/NAMEOFJDK/Contents/Home/bin
您可以编辑 eclipse.ini (如其他答案中所建议的)以使用特定的 JVM。