若要运行Eclipse,必须先安装JRE或JDK。在搜索了以下位置后未找到JVM:

156

Eclipse无法打开,之前使用过Eclipse而且一直能够正常打开。现在我不断收到以下错误信息:

必须有Java Runtime Environment (JRE)或Java Development Kit (JDK)可用才能运行Eclipse。在搜索以下位置后未找到Java虚拟机:

之前能够打开并处理项目,但现在无法打开。

这是我一直收到的屏幕截图:

输入图片描述

28个回答

203

你可以明确告诉Eclipse在哪里找到它。打开 eclipse.ini 文件并在文件顶部添加以下行:

-vm
/absolute/path/to/jre6/bin
更新:我在自己的Windows机器上找到了根本原因。 GlassFish安装程序报错并显示与此完全相同的错误消息,在GlassFish论坛中搜索后,原因很明显:Windows机器上安装了损坏的JRE。我的JRE与JDK一起提供,并且Java 6 JDK安装程序没有正确安装JRE。JDK的JRE安装中缺少一个DLL文件。之后,我从http://java.com重新安装了独立的JRE,覆盖了旧的JRE,之后GlassFish安装程序继续运行,而且Eclipse也能在不需要在eclipse.ini中添加这两行内容的情况下无缝启动。

4
@DavidSmith 对我来说运行得很好。在Windows机器上,路径看起来像这样:C:\Program Files (x86)\Java\jre6\bin - Christoph
在ini文件的后面可能会有另一个-vm参数覆盖了你放在顶部的那个,并指向一个不存在的虚拟机(例如,因为Java已自行更新并删除了旧版本)。如果是这样,请删除后面的那行。 - WBT
1
请记住,eclipse.ini 文件可能已经有了一个参数 -vm。如果是这样,请用正确的路径替换它。我在更新 JAVA 后遇到了这个问题。 - rph
1
在.ini文件末尾添加并不能解决我的问题。请在“-vmargs”参数之前添加并重试。 - cihadakt

26

我遇到了这个问题,是因为我卸载了 jdk 13 版本 并重新安装了 jdk 8 版本

尽管我已经更新了路径变量,eclipse 仍然选择旧的配置。

你需要编辑 eclipse.exe 所在文件夹中的 eclipse.ini 文件。

enter image description here

只需使用最新的路径更新此文件即可让 eclipse 拾取它。

enter image description here


2
这是一个很好的答案,我建议使用像Notepad++这样的文本编辑器打开这个.ini文件以获得更好的可读性。 - Idan

20
通常是由于以下原因之一导致的:
  • 您在-vm参数中指定了错误的jvm路径:请参阅此Stack Overflow问题以获取具体示例。
  • eclipse.ini文件已损坏(如果未进行修改,则不是这个问题,但如果设置jvm路径不起作用,...我会用来自新安装的eclipse的eclipse.ini替换它,以确保清除)
  • Eclipse默认搜索的java不再可访问(因为$PATH不再更新)
有关更多详细信息,请参见wiki页面“查找VM,使用JNI调用或执行Java”。

未指定-vm

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

  • 如果找到jvm共享库,则加载它并使用JNI调用API启动vm。
  • 如果未找到jvm共享库,则我们执行java启动器以在新进程中启动vm。
如“FAQ如何运行Eclipse?”中所述:

Eclipse不会查看JAVA_HOME环境变量。

所以我建议检查一下你的 $PATH,首先打开一个新的shell会话(无论你的操作系统是什么),输入 'java -version' 看看是否有返回结果。


1
遇到了相同的问题,通过这个答案解决了,并且在Ubuntu 12.04LTS下运行正常。 - bakoyaro

13

C:\Program Files\Java\jre1.8(or)1.6(or)1.7\bin 复制 javaw.exe

输入图像描述

然后将其粘贴到 Eclipse 文件夹中,其中包含 eclipse.exe。就这些。

输入图像描述


它能够工作,但看起来仍然像是一个hack而不是一个合适的解决方案。无论如何,我还是点了赞。 - supernova

11

以下是我修复的方法:

  1. 找到JRE(Java 运行时环境)的安装位置。在我的情况下,它位于 C:\Program Files\Java\jdk1.7.0_10。

  2. 复制 JRE 文件夹并将其粘贴到 Eclipse 文件所在的位置(即 eclipse.exe 所在的位置)。

当你下载 Eclipse 时,会得到一个.zip 压缩包,其中包含了运行 Eclipse 所需的所有文件,但缺少 JRE 文件。所以你只需要找到硬盘上 JRE 文件夹的位置,并将其添加到 Eclipse 包的其他部分中即可。


11
我遇到了同样的问题,问题在于我在64位机器上运行了32位版本的Eclipse,而它需要32位版本的JRE。我通过编辑eclipse.ini文件中的Program FilesProgram Files (x86)解决了该问题。
-VM
C:Program Files (x86)\Java\jre6\bin

这样做解决了问题。

你可能只想安装64位的Eclipse,但这样做会解决错误。


这个答案。我的Eclipse来自OlimexODS包,并配置为32位启动,我的JDK来自Netbeans 64位包。启动失败消息中没有任何迹象表明存在不匹配的问题。好老的可移植Java:一次编写,到处崩溃。检查:如果你的eclipse.ini文件中有类似plugins/launcher.win32.win32.x86的内容,则是32位版本。如果从命令行运行java -version显示类似于Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)的内容,则可能存在此问题。 - kert

7

你是否通过java.com网页浏览器自动安装程序安装Java?如果是,那么这就是问题所在!你需要进行“手动”安装:http://www.java.com/en/download/manual.jsp

问题只是需要正确匹配32位Eclipse/32位Java或64位Eclipse/64位Java。许多64位Windows系统使用的是32位浏览器,而后者是自动安装程序提供的Java版本——而不是64位Eclipse所需的版本。


5

请确保在Windows的Path变量中包含了JDK的安装路径。


3
这么简单,只需要将你的Java路径添加进去,例如:

C:\Program Files\Java\jdk1.8.0_121\bin

在系统变量PATH中。

3

-vm C:/Program Files/Java/jdk1.6.0_29/bin/javaw.exe 添加到 .ini 文件中对我很有帮助。


4
我也是。在“-vmargs”之前添加此内容。 - Tom

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