JRE或JDK必须可用才能运行Eclipse。搜索以下位置后未找到JVM


128

Eclipse无法打开,之前使​​用过eclipse,并且之前打开过没有问题。现在,我不断收到以下错误消息:

Java运行时环境(JRE)或Java开发工具包(JDK)必须可用才能运行Eclipse。搜索以下位置后未找到Java虚拟机:

曾经食过,无法打开并且无法处理项目。

这是我不断得到的屏幕截图:

在此处输入图片说明

Answers:


167

您可以明确地告诉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


哪个OS版本/版本?哪个Eclipse版本?您的JRE路径是什么?
BalusC 2010年

3
@DavidSmith对我来说就像一种魅力。在Windows机器上,路径看起来像:C:\Program Files (x86)\Java\jre6\bin
Christoph

在ini文件中,稍后可能会存在另一个-vm参数,该参数将覆盖您放在顶部的参数,指向不存在的VM(例如,因为Java更新了自身并删除了旧版本)。如果是这样,请删除下一行。
WBT

1
请记住,eclipse.ini可能已经有一个参数-vm。如果是这样,请使用正确的路径替换该路径。更新我的JAVA之后,我遇到了这个问题。
rph

在.ini文件末尾添加此内容无法解决我的问题。在-vmargs参数之前添加此名称,然后重试。
cihata87

17

通常是因为:

  • 您在-vm参数中指出了错误的jvm路径:有关具体示例,请参见此SO问题
  • eclipse.ini被损坏了不知何故(如果它没有被修改过,这不是,但如果设置一个JVM路径不工作,...我会更换eclipse.ini一个从全新安装来只是要确定)
  • 默认情况下,eclipse搜索的java不再可用(因为$ PATH不再是最新的)

wiki页面上详细信息“ 找到一个虚拟机,使用JNI调用或执行Java

未指定-vm

如果未-vm指定no ,则启动器首先在eclipse根目录的jre目录中查找虚拟机,然后在搜索路径中查找。
如果在任何一个位置都找到了Java,则我们将寻找相对于该Java可执行文件的jvm共享库(在窗口上为jvm.dll,在* nix平台上为libjvm.so)。

  • 如果找到了jvm共享库,我们将其加载并使用JNI调用api启动虚拟机。
  • 如果未找到jvm共享库,我们将执行Java启动器以在新进程中启动vm。

如“ 常见问题解答如何运行Eclipse? ”中所述:

Eclipse不会查询JAVA_HOME环境变量。

因此,我将检查您的$ PATH,从n个新的外壳程序(无论您的操作系统是什么)开始,键入“ java -version”以查看它是否仍返回任何内容。


1
遇到同样的问题,用这个答案解决了问题,它在Ubuntu 12.04LTS下工作
bakoyaro 2013年

12

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

在此处输入图片说明

并将其粘贴到eclipse.exe所在的Eclipse文件夹中。就这样。

在此处输入图片说明


它可以工作,但看起来仍然像是骇客,但不是适当的解决方案。无论如何都支持。
超新星

10

我遇到了同样的问题,问题是我在64位计算机上运行了32位版本的Eclipse,并且它需要32位版本的JRE。

我将文件更改Program Files为:Program Files (x86)eclipse.ini

-VM
C:Program Files (x86)\Java\jre6\bin

这样就解决了问题。

您可能只想安装64位Eclipse,但这将解决该错误。


这个答案。我的日食来自OlimexODS软件包,并且配置为以32位启动,而我的JDK带有Netbeans 64位软件包。没有任何启动失败消息以任何方式表明该不匹配问题。老式的可移植Java好:只写一次,到处崩溃检查:如果eclipse.ini包含一些类似于plugins / launcher.win32.win32.x86的东西,那么它的32位版本。如果命令行中的java -version表示类似Java HotSpot(TM)64位服务器VM(内部版本24.51-b03,混合模式),则您可能会遇到此问题。
kert 2014年

9

这是我的固定方法:

  1. 找到您的jre的安装位置。就我而言,它位于C:\ Program Files \ Java \ jdk1.7.0_10

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

当您下载eclipse时,会得到一个.zip软件包,其中包含eclipse.exe和运行eclipse所需的所有其他文件,但缺少jre文件。因此,您要做的就是找到jre文件夹在硬盘驱动器上的位置,并将其添加到eclipse软件包的其余部分。


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想要的版本。


救救我。谢谢。
teapeng 2015年


4

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

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

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

在此处输入图片说明

只需使用最新路径更新此文件,以使eclipse可以将其拾取

在此处输入图片说明


3

如此简单,仅添加您的java路径即可:

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

PATH系统变量中


3

我之前在Eclipse和STS IDE中遇到过类似的问题

  • 请检查JDK/JRE您的机器上是否有天气。如果没有,请安装JDK并设置环境变量。
  • 即使在第1步之后,如果您仍然遇到问题eclipse.ini,也该通过以下方式在or sts.ini中设置vm参数。
-vm 
C:Program Files (x86)\Java\jre8\bin

2

使用Eclipse IDE开发Android应用程序时,我也遇到了同样的问题。我通过删除所有Java安装程序(我分别安装了Java 6和7)解决了该问题,并仅重新安装了jdk 7。



2

我通过执行以下步骤来解决此问题,

1)

  1. 蚀从“ C:\ ProgramData \ Oracle \ Java \ javapath”中找到JAVA可执行文件
  2. 文件夹结构将包含在此处输入图片说明可执行文件下面的快捷方式,即。ii。java.exe iii。javaws.exe
  3. 对我来说,可执行路径指向我的(ProgramFiles(x84))文件夹位置
  4. 我将其更正为Program Files路径(64位),问题已解决

请找到相同的屏幕截图。


2

只是在其他答案之上:

Windows用户:您可以在eclipse.ini中使用“ /”或“ \”分隔的JRE路径。没关系 Eclipse仍然会选择它。例如,在我的Windows系统中,任何一条路径都可以(当然,在-vm之后):

C:/ Program Files / Java / jre1.8.0_181 / bin或C:\ Program Files \ Java \ jre1.8.0_181 \ bin


1

用正确的JDK路径更改eclipse.ini文件中的vm值,如下所示:

-vm /库/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home/bin

eclipse.ini的路径在我看来是这样的,

/Users/tomcat/eclipse/jee-2018-09/Eclipse.app/Contents/Eclipse


1

如果从路径变量中删除Java(有意或无意),有时会发生这种情况。要再次设置PATH变量,请将jdk \ bin目录的完整路径添加到PATH变量。通常,完整路径为:

C:\ Program Files \ Java \ jdk-11 \ bin

要在Microsoft Windows上设置PATH变量:

  1. 选择控制面板,然后选择系统。
  2. 单击高级,然后单击环境变量。
  3. 将JDK安装的bin文件夹的位置添加到系统变量中的PATH变量中。

0

我在win7机器上也遇到了这个问题。我想用jdk更新jre。所以我删除了jre文件夹,然后下载并解压缩了新的jdk。问题是我手动删除了jre文件夹,而我应该将其卸载了。这留下了一堆仍然指向旧jre的注册表项。Eclipse仍然以某种方式想要使用旧的jre。我无法卸载旧的Java虚拟机,但不断出现此错误:

错误1723。此Windows Installer程序包有问题。无法完成此安装所需的DLL。与您的支持人员或包装供应商联系

因此,我不得不使用此MS实用程序来修复卸载:

http://support.microsoft.com/kb/2438651/

然后,我不得不再次安装虚拟机。我安装在原始位置所在的相同位置,以避免再浪费一个小时!之后,月食正确开始。

朱利奥


0

我只是有这个问题,并以这种方式解决了。我注意到错误消息中包含jre而不是jre6或jre7,因此我将jre6从程序文件复制到eclipse文件夹,然后将其从jre6重命名为jre,然后它起作用了:p


0

Newb是我的职责,但是我只安装了JRE而不是JDK。安装了JDK,我的问题马上消失了。


0

我遇到了这个问题,这是由于Windows机器正在播放。我进入控制面板->系统->高级-环境变量。

我编辑了PATH变量(已经正确设置了),更改了NOTHING,然后单击OK退出了屏幕。

然后蚀工作了。不知道为什么,除了因为窗户。希望这可以对某人有所帮助。


0

我有这个问题;我通过去修复它

计算机->属性->高级设置->环境变量

在系统变量中,找到名为PATH的变量。
->选择编辑->在路径变量的最后,放一个“;” 然后添加您的JDK路径,并在最后放置\ bin \

应该是固定的。

例:

系统变量

C:\ Program Files(x86)\ Common Files ....... HP \ LeanFT \ bin

JDK路径-

C:\ Program Files文件\ Java \ jre1.8.0_121

最终路径-

C:\ Program Files(x86)\ Common Files ....... HP \ LeanFT \ bin; C:\ Programs Files \ Java \ jre1.8.0_121 \ bin \

来源:https//www.java.com/en/download/help/path.xml


Common Files.......HP\LeanFT\bin顺便说一下,并非所有人都有道路。使用Java开发时不需要它。
OneCricketeer

0

这很简单。JDK bin目录或JRE bin目录应该位于路径变量中 示例: Java已安装目录: 假设将Java安装在“ C:\ Program Files \ java \ Jdk1.8.0_144 ”目录中,现在您可以在“ C:\ Program ”中找到bin目录Files \ java \ Jdk1.8.0_144 \ bin '

导航到用户的环境变量

Control Panel --> User Accounts --> User Accounts --> Change my environment variables

在弹出窗口中,单击“ 用户变量”下的“ 路径”,然后单击“ 编辑...”按钮,将出现另一个弹出窗口。

单击新建按钮,然后输入C:\ Program Files \ java \ Jdk1.8.0_144 \ bin

点击OK按钮,并再次确定在环境变量弹出按钮。

现在您可以打开日食了,没有错误


0

我找到了一个解决方案,其中Eclipse.ini的位置是Java的旧版本,而在更新新的Java版本之后,-vm的位置

C:\Program Files\Java\jre1.8.0_201\bin

是一样的,所以我不得不将目录更改为新版本的Java。

因此,解决方案是仅打开最新的Java版本并复制其目录路径,然后将其替换为Eclipse.ini文件。


0

类似Linux的系统的适度未来证明示例。假设已安装javac并在您的路径上。

./eclipse -vm dirname $(readlink -f $(which javac))

这将找到javac的安装目录,并将其作为vm参数传递给eclipse。



0

就我而言,我出于不同的目的对eclipse.ini进行了编辑,以包含-vm参数。那就是导致失败的原因。我删除了-vm并添加了\ bin的以下行,从而解决了该问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.