我正在尝试安装Eclipse,但是无法启动安装程序。失败
“无法创建Java虚拟机”
我该如何解决?
注意:我在Mac上。
答案 0 :(得分:11)
我也花了一些时间才弄清楚这一点。主要收获是 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运行的步骤。因为我无处给出具体的答案,所以请看一下评论,以防出现问题。
编辑:请参见Christian Fries答案,他指出Eclipse支持所有Java版本8至13。
答案 1 :(得分:9)
注意: Eclipse 2020-03 也存在错误“ 无法创建Java虚拟机”(在某些情况下,请参见https://bugs.eclipse.org/bugs/show_bug.cgi?id=561273),并且不需要使用Java 8(对于Eclipse 2020-03)。
对于急躁的人:
您可以通过给定的VM运行Eclipse或Eclipse Installer,而无需通过命令行启动push
来对其进行更改:
打开终端运行:
eclipse.ini
其中open PATHTOECLIPSEINSTALLER/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/NAMEOFJDK/Contents/Home/bin
是Eclipse Installer所在文件夹的路径,而PATHTOECLIPSEINSTALLER
是具有JDK的文件夹的名称(11、12、13)。
例如:
NAMEOFJDK
在安装程序中,您可以选择Eclipse使用的VM。在此处使用兼容的VM,安装程序将为您修改open Downloads/Eclipse\ Installer.app --args -vm /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin
。
说明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。通过运行eclipse.ini
获得默认的JVM。
此程序/usr/libexec/java_home
将默认安装具有最高版本的JDK。也就是说,如果您已安装JDK 14并运行Eclipse 2020-03,则会看到此错误。
解决方案
这里总结了一些其他答案,共有三个选项:
一旦从/ Library / Java / JavaVirtualMachines /中删除了JDK 14,该错误将消失。
如果您想安装JDK 14,请通过命令行/usr/libexec/java_home
您可以编辑eclipse.ini(如其他答案所示)以使用特定的JVM。
答案 2 :(得分:2)
引用马赛·约瑟夫(Marseille Joseph) 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
答案 3 :(得分:1)
对我来说,我必须编辑位于此处的eclipse-inst.ini
文件:
/Users/bparks/Downloads/Eclipse Installer.app/Contents/Eclipse/eclipse-inst.ini
并将路径添加到我的本地Java VM,在这里:
-vm
/Users/bparks/jdk/jdk1.8.0_162_x64/bin/java
如果您已经安装了Eclipse,并且发现它引发了相同的错误,则可以通过编辑Eclipse的以下文件来尝试类似的方法:
/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini
在Mac上,您可以通过在终端中运行以下命令来获取到Java exe所需的完整路径,该路径会将路径复制到剪贴板。
$ echo $(/usr/libexec/java_home)/bin/java | pbcopy
答案 4 :(得分:1)
删除/ Library / Java内的所有java文件夹
然后从安装新的jdk https://adoptopenjdk.net/
将安装在 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
然后尝试重新安装eclipse a
答案 5 :(得分:1)
我的Mac遇到了同样的问题。这是我的解决方案。
首先:我已经卸载了所有版本的jdk,因为我尝试了很多选择。 为此,您需要转到Library / Java / JavaVirtualMachines 并删除所有文件夹。
第二:安装jdk 1.8,这里是下载此版本的链接: jdk 1.8
第三:安装eclipse 2020-03,仅此而已。
如果要使用JDK 14,则需要执行以下步骤:
现在,您必须更改选项,转到“ Preferences”(命令+,)> Java> Compiler并搜索版本14。在此步骤之前,您需要安装jdk 14(link)也许eclipse会建议您更改为正确的JRE,为此,您需要转到Java>已安装的JRE,并添加正确的版本。单击添加时,您需要选择JRE类型,在我的情况下,我使用MacOS X VM和Standard VM,然后必须选择目录(/ Library / Java / JavaVirtualMachine / jdk-14 / Contents / Home并单击打开,您可以指定一个JRE名称,然后完成 Eclipse将重新启动,现在您可以在Java 14中使用Eclipse。
这对我有用,希望您理解我。
答案 6 :(得分:1)
转到/ Library / Java / JavaVirtualMachines
删除所有正在使用的版本。
答案 7 :(得分:1)
为我安装brew工作中的jdk 8。您可以在How to install Java 8 on Mac
上从HomeBrew获得有关安装Jdk 8的说明。答案 8 :(得分:0)
编辑文件/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>
答案 9 :(得分:0)
我在eclipse-java-2020-03-M2-macosx-cocoa-x86_64
和 opendjdk11 上遇到了此问题。目前最新的eclipse安装程序也抱怨相同的错误。
切换回 openjdk8 后,一切顺利...
答案 10 :(得分:0)
对于 Windows 操作系统:
-vm
path-to-java-bin\javaw.exe(例如:C:\Program Files\Java\jdk-11.0.10\bin\javaw.exe)