【发布时间】:2019-03-10 04:58:42
【问题描述】:
我正在尝试安装 Eclipse,但无法启动安装程序。它失败了
“创建 Java 虚拟机失败”
我该如何解决这个问题?
注意:我在 Mac 上。
【问题讨论】:
我正在尝试安装 Eclipse,但无法启动安装程序。它失败了
“创建 Java 虚拟机失败”
我该如何解决这个问题?
注意:我在 Mac 上。
【问题讨论】:
对我来说,我必须编辑位于此处的 eclipse-inst.ini 文件:
Eclipse Installer.app/Contents/Eclipse/eclipse-inst.ini
然后将路径添加到我的本地 java VM在 .ini 文件的最顶部,这里是:
-vm
/Users/bparks/jdk/jdk1.8.0_162_x64/bin/java
如果 Eclipse Installer.app 文件在 DMG 中,请右键单击它,然后将其复制,然后将其粘贴到另一个文件夹中。然后右键单击该应用程序文件,并选择“显示包内容”,进入应用程序内的文件。
如果您已经安装了 Eclipse,并且发现它抛出了同样的错误,您可以通过编辑 Eclipse 的以下文件来尝试类似的方法:
/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini
在 mac 上,您可以通过在终端中运行以下命令来获取 java exe 所需的完整路径,这会将路径复制到剪贴板。
$ echo $(/usr/libexec/java_home)/bin/java | pbcopy
【讨论】:
编辑文件/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>
【讨论】:
我在 eclipse-java-2020-03-M2-macosx-cocoa-x86_64 和 opendjdk11 中遇到了这个问题。目前最新的 eclipse 安装程序也报同样的错误。
我切换回openjdk8后,一切顺利...
删除 /Library/Java 中的所有 java 文件夹
然后安装一个新的 jdk 从 https://adoptopenjdk.net/
将安装在 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
然后尝试重新安装eclipse a
【讨论】:
我也花了一些时间才弄清楚这一点。主要内容是 eclipse 不支持 SDK 版本 14(截至 eclipse 2020-03)。这对我来说并不完全明显。
安装支持的版本(我使用 Homebrew 安装 SDK V8 ?):
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
如果这是您安装的唯一 Java 版本,您应该没问题,并且 Eclipse 应该会打开。如果不是这种情况,并且您安装了另一个 Java 版本。您必须告诉 Eclipse 它应该使用哪个 Java 版本(参见第 2 步)。
按照Juan Ignacio Barisich 和Brad Parks 的描述编辑/Applications/Eclipse.app/Contents/Info.plist 文件,告诉Eclipse 使用哪个版本。 这是您在步骤 1 中安装的版本。
nano /Applications/Eclipse.app/Contents/Info.plist
# or
open /Applications/Eclipse.app/Contents/Info.plist
<key>Eclipse</key>
<array>
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
<string>-vm</string>
<string>/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/</string>
</array>
免责声明:请记住,这些是我为让 eclipse 再次运行而采取的步骤。因为我没有资格对此给出准确的答案,请查看 cmets 以防我出错。
编辑:见Christian Fries回答谁指出eclipse支持所有java版本8到13。
【讨论】:
注意:Eclipse 2020-03 也存在错误“无法创建 Java 虚拟机”(在某些情况下,请参阅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 所在文件夹的路径,NAMEOFJDK 是带有JDK(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。运行/usr/libexec/java_home获取默认JVM。
这个程序/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。
【讨论】:
提到马赛约瑟夫 https://www.eclipse.org/forums/index.php?t=msg&th=1102885&goto=1823113&#msg_num_13 这对我有用!
他们的解决方案不需要卸载 jdk14 或编辑 eclipse.ini 文件。而是这样做:
cd /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/MacOS/
sudo rm /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/MacOS/libjli.dylib
sudo ln -s /Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home/lib/libjli.dylib libjli.dylib
【讨论】:
我在我的 mac 中遇到了同样的问题。这是我的解决方案。
首先:我已经卸载了所有版本的 jdk,因为我尝试了很多选项。 为此,您需要转到 Library/Java/JavaVirtualMachines 并删除所有文件夹。
二:安装jdk 1.8 这里有这个版本的下载链接: jdk 1.8
第三:安装eclipse 2020-03,仅此而已。
如果你想使用 JDK 14,你需要按照以下步骤操作:
现在您必须更改选项,转到 Preferences (command + ,) > Java > Compiler 并搜索版本 14。在此步骤之前,您需要安装 jdk 14 (link)也许 eclipse 会建议您更改为正确的 JRE,为此您需要转到 Java > Installed JRE 并添加正确的版本。当你点击add你需要选择他的JRE类型,在我的例子中我使用MacOS X VM和Standard VM,那么你必须选择目录(/Library/Java/JavaVirtualMachine/jdk-14 /Contents/Home 并单击 open 您可以提供一个 JRE 名称,然后 finish eclipse 将重新启动,现在您可以将 eclipse 与 java 14 一起使用。
这对我有用,我希望你能理解我。
【讨论】:
转到 /Library/Java/JavaVirtualMachines
删除所有版本,除了一个正在使用的版本。
【讨论】:
为我从 brew 工作安装 jdk 8。您可以在此处获取有关从 HomeBrew 安装 Jdk 8 的说明How to install Java 8 on Mac
【讨论】:
对于 Windows 操作系统:
-vm
path-to-java-bin\javaw.exe(例如:C:\Program Files\Java\jdk-11.0.10\bin\javaw.exe)
【讨论】:
我在更新到macOS Monterey后突然开始在mac中遇到同样的问题,所以我只是做了以下步骤: 然后转到 Contents/Eclipse/eclipse.ini 文件并使用任何文本编辑器打开它,您将看到以下内容: 如上图所示,在 -vmargs 之前添加以下行:
-vm /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java
下面这行对于所有用户来说都是不同的:
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java
您可以在终端中使用以下命令将此行复制到剪贴板:
$ echo $(/usr/libexec/java_home)/bin/java | pbcopy
同样适用于 STS:
然后如下图所示转到 Contents/Eclipse/SpringToolSuite4.ini 并使用任何文本编辑器应用程序打开。
【讨论】: