找不到Java虚拟机(Eclipse)

15

当我尝试运行Eclipse Kepler(第一次),我遇到了以下错误:

图片描述

我知道这个问题以前已经被解决很多次了。然而,我已经更改了eclipse.ini文件中的-vm C:\Program Files (x86)\Java\jdk1.6.0_21\bin\javaw.exe 但是没有用。同样的错误仍然出现。

===更新=== 在-vm后面加上了一个换行符,现在我得到了这个对话框: 图片描述

和eclipse.ini文件:

-vm
C:\Program Files (x86)\Java\jdk1.7.0_51\jre\bin\javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

你转义了双引号字符吗? - Jason
15个回答

11

问题在于您尝试使用32位版本的Java启动64位版本的Eclipse。架构应该匹配。您可以在这里下载64位Java。

使用64位JVM启动Eclipse,问题将会消失。

操作步骤如下:

eclipse.exe -vm c:\path\to\64\bit\bin\javaw.exe

您还可以通过以下步骤将eclipse.ini文件中的前两行更新为默认使用64位java:

-vm
c:\path\to\64\bit\bin\javaw.exe

(注意: 确保参数和值分别存在于单独的一行)

此外,您还可以下载32位版本的Eclipse与32位Java一起使用。 关键是位数相同。


64位Java没有起到帮助作用。 - Insederec
一旦具有相同的位数,它就可以工作。您能验证您是否同时使用64位Java吗?您描述中的错误表明使用32位Java的64位Eclipse无法工作。如果您得到了“确切”的相同错误,则肯定存在不匹配。如果您得到其他不同的错误,我很乐意查看。 - cmd
不是,它是C:\Users\[USER]\Desktop\Java\eclipse\jre\bin\javaw.exe - Insederec
好的,既然你已经将Java放在Eclipse安装目录中,你就不需要在eclipse.ini或者命令行中指定-vm了。 - cmd
哦,还有一件事需要注意。在使用eclipse.ini时,必须将-vm和/path/to.javaw.exe放在不同的行上。(这曾经让我吃过亏) - cmd
显示剩余4条评论

2

您的64位Eclipse指向32位Java安装。它们需要匹配。您可以获取并使用相应的32位Eclipse下载,或确保安装64位Java。


我认为你可能是对的,但是在做了那个之后,我得到了同样的对话框。我发现我的JDK版本有点过时,所以至少还有这个问题。 - Insederec
做什么?切换到64位Java还是32位Eclipse?你解压缩它时覆盖了原有的内容吗(不要这样做)?你重复使用了已经有的eclipse.ini文件吗(也不要这样做)? - nitind
我已经获得了最新版本的64位JDK。我更新了eclipse.ini以反映新目录。 - Insederec
你能发布ini文件的内容吗? - nitind

1
不需要打开eclipse.ini文件,只需按其请求启动它的路径即可...大多数jre文件夹的名称都有一个附加扩展名,例如jre1.8.0_45,只需从java文件夹中剪切该文件夹并粘贴到eclipse文件夹中,然后删除扩展名。现在它变成了jre,启动eclipse应该可以正常工作。

非常感谢!这个方法完美地解决了我的问题。在我的情况下,整个jre7文件夹都不见了。但是,由于每个JDK都包含一个JRE,我从JDK7文件夹内部复制了JRE文件夹,将其粘贴到根Java文件夹中,然后将其从“jre”重命名为“jre7”。之后,我的Eclipse就可以完美启动了。 - specialk1st

1
你在eclipse.ini中把-vm和路径放在不同的行是正确的。你更新的截图显示的错误表明你正在32位JDK上运行64位Eclipse,这是无法工作的。它们的位数必须匹配。

0

从C:Program Files ... \ bin运行java.exe。将会打开一个cmd提示符。只需将其最小化,然后尝试运行eclipse.exe。对我有用


0

0

我遇到了同样的问题。我发现由于安装了JDK,我在PATH环境变量中删除了路径“C:\ProgramData\Oracle\Java\javapath”,导致了这个问题。所以我重新添加了这个路径,现在它可以正常工作了。


0

对于那些像我一样尝试了上述解决方案,即使确保相同的位数并给出直接路径等仍然无法使其工作的人 - 这是我成功的方法。

-vm java\bin

我指向了bin文件夹,Eclipse自动找到了它想要的文件(无论它是什么),所以你也可以试试这个方法。

注意:我把我的jre放在了Eclipse文件夹中,所以对我来说路径很短...基本上,只需尝试指向bin文件夹而不是特定的文件。


0
你可以试试以下方法之一吗?
(1) 将jre复制到它要求的目录中。
(2) 将jvm路径添加到系统路径中,该路径位于控制面板->系统->高级->环境变量中。

我收到了“Failed to load the JNI shared library "eclipse\jre\bin\client\jvm.dll"” 的错误信息。 - Insederec
对于第二个问题,我需要更多关于它是什么以及如何做的信息。 - Insederec

0

忘了这是Windows系统…引号。 我认为你需要将其放在引号中,因为字符串中有空格。 -vm“C:\ Program Files(x86)\ Java \ jdk1.6.0_21 \ bin \ javaw.exe”


带引号时,我得到了与之前相同的错误,没有引号时,我得到了一个对话框,该对话框已更新到我上面发帖的原始帖子。 - Insederec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接