无法运行Eclipse;JVM终止。退出代码=13

332

在此输入图像描述

我只是在eclipse.ini中追加了以下内容:

-vm C:\Program Files\Java\jre6\bin\javaw.exe

然后我尝试重新启动eclipse,结果出现了这个错误。请告诉我如何解决或提供真正解决该问题的链接。

这是我的eclipse.ini文件。

-startup 
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
 --launcher.library
 plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 
-showsplash
 org.eclipse.platform
--launcher.XXMaxPermSize 256m 
--launcher.defaultAction 
openFile 
-vm 
C:\Program Files\Java\jre6\bin\javaw.exe
-vmargs 
-Xms40m 
-Xmx384m

谢谢


3
这篇文章(https://dev59.com/rWkw5IYBdhLWcg3wzdtF#9636283)对我很有帮助。 - Vikram
12
如果您从Java 7升级到Java 8(1.8.0 u25或更高版本)后,Eclipse停止工作,那么可能是因为您的Eclipse是64位的,需要64位版本的JRE。有关更多详细信息,请参见这个问题 - ADTC
我的情况是我卸载了旧版本的JDK,但Eclipse仍然在尝试找到它。 - sophia
自从2008年以来,我一直在我的Windows PC上安装Eclipse,但第一次运行时从未遇到过错误代码13。你会认为这个问题现在应该已经解决了。 - Andrew S
2
可能是重复的问题:无法启动Eclipse - Java已启动但返回退出代码=13 - durron597
如果有人遇到问题,请查看此解决方案。它来自其他解决方案,对我很有帮助 https://dev59.com/B0jSa4cB1Zd3GeqPDCgV#47948092 - Roman Soviak
34个回答

2

2
每当您看到此错误时,请转到 Configuration 目录并检查刚生成的日志文件。它应该有适当的异常堆栈跟踪信息。我的情况是,我安装了更新的32位 JRE(或JVM),它成为添加到 Path 的默认 Java。而我的 Eclipse 安装是64位的,这意味着它需要一个64位的 VM 来运行其本地 SWT 库。所以我只需卸载32位的 JVM 并替换为64位的 JVM 就可以了。
我想知道他们是否会改进这个报告机制,而不是在某个目录中静默生成日志文件。

2

我在两台电脑上使用eclipse时遇到了同样的问题。我安装了32位的jre,后来将其卸载并安装了64位的jre,问题得到了完美解决。


您可以同时安装32位和64位的JRE。事实上,如果您使用32位浏览器和64位Eclipse安装,则需要这样做。 - ADTC

2

前往保存Eclipse的文件夹。在配置文件夹中查看启动日志。它会提供比“退出码13”更好的诊断。


2
在Java更新后,Eclipse无法启动,因为默认的JDK位置已更改。将以下行添加到eclipse.ini文件中立即解决了我的问题:
-vm
C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw.exe

我在vmargs之前添加了以下这些行:

...
--launcher.defaultAction
openFile
-vm
C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m

如需了解有关eclipse.ini的更多信息,请访问此网站:http://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example

在我的情况下,我使用32位的eclipse和Java。如果您同时安装了32位和64位版本的Java,请注意选择正确的版本。对于64位版本,请参考目录下的javaw.exe文件。

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

1

我在Ubuntu上遇到了这个错误,因为安装了32位和64位的Java。请使用

sudo update-alternatives --config java

设置正确的版本作为默认版本。


1

我刚刚卸载了32位版本的jre,对我来说运行良好。


1
我曾使用Eclipse Juno,但不确定是32位还是64位。我安装了32位的Java,导致失败。之后我安装了64位的Java,Eclipse Juno又可以工作了。
我还删除了环境变量(PATH)中的任何Java或JRE引用。

1
在我看来,关于Eclipse和Java不同架构的大部分答案都是错误的,可以使用Windows下的Process Monitor轻松检查。 -vm选项用于运行特定版本的Java,其目的在于配置进程启动并独立运行所有Java代码,这就是为什么要配置到java.exe。在这种情况下,您不需要为Eclipse和Java使用相同的架构,而是可以愉快地混合32位和64位。只有当您不使用-vm而让Eclipse将Java本地加载到其自己的进程中使用jvm.dll等时,您才不能混合使用两者。后一种行为是Eclipse的默认行为,但如果您在eclipse.ini中正确配置-vm,则不再是这种情况。
如果您不相信我,请进行一些测试,使用不同架构的Eclipse和Java,并进行正确的-vm配置或未进行配置。最终,这正是提问者在接受的答案评论中描述的内容。

无法运行Eclipse; JVM终止。退出代码=13

他说64位JDK现在可以工作,但是从他的截图中可以看出,他的Eclipse是32位的,因为launcher.library的路径是32位的。

现在我来到这里的原因:我的一个客户也遇到了一些问题,在加载我们基于Eclipse/OSGI的应用程序时Java退出并显示退出代码13。最后证明,问题不在于-vm或Java和eclipse.exe的架构,而是他简单地缺少了config.ini,我想eclipse.exe没有意识到要加载什么之类的。在我们意识到这一点并放置了一个config.ini之后,该应用程序使用-vm和64位JRE7与32位eclipse.exe组合成功加载。


0

在提供解决方案之前,让我们了解一下为什么会出现这个错误。如果您知道这个问题背后的原因,我们就可以轻松地修复这个错误。

原因1:这个问题最常见的原因是,我们试图安装不同位版本的软件,即64位或32位版本的软件。这可能是Eclipse或Java。

解决方案:检查您正在运行哪个版本的操作系统。确保您下载了相同版本的Eclipse以及相同版本的Java软件。

原因2:Eclipse.ini文件中的配置错误

解决方案:在Eclipse.ini文件的末尾添加此行"-vm然后是您的java sdk路径"。例如: -vm C:\ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

原因3:Eclipse安装目录中有特殊字符(#,!,@)。

解决方案:确保您没有任何特殊字符。

原因4:您已经在PATH系统变量中添加了两次JAVA路径,并且两个路径不同。

解决方案: 从PATH系统变量中删除一个错误/不同的JAVA路径。

原因5:您可能正在使用最新版本的Eclipse,但您可能正在使用错误版本或不支持的Java虚拟机(JVM)。

解决方案: 要检查您正在使用哪个版本的Java,请按win+R键打开命令提示符,然后输入cmd并按Enter键。现在在控制台中键入Java -version命令以了解Java版本。 现在研究一下Eclipse是否支持该版本。 或者 您可以打开Eclipse文件夹中的“readme”文件夹,并打开readme_eclipse.html以查看它支持的版本。


2
请不要在多个问题中发布相同的答案。发表一个好的答案,然后投票/标记关闭其他问题作为重复。如果问题不是重复的,请根据问题量身定制您的答案 - durron597

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