无法启动Eclipse-Java已启动,但返回了退出代码= 13


966

我正在尝试使用Eclipse进行Android开发。我在尝试运行Eclipse时遇到了这个问题,它仅在几分钟前安装了4.2版。

在第一次尝试Eclipse不使用任何参数指定Java VM的情况下启动后,我收到一条错误消息,说它为couldn't find a Java VM called javaw.exe inside the Eclipse folder,所以我找到了Java的安装位置,并将该位置指定为快捷方式目标中的参数。现在出现另一个错误,Java was started but returned exit code=13

类似的问题似乎表明这是32位/ 64位冲突,但是我对我下载Eclipse和的64位版本表示肯定,Java (RE 7u5)因为我拥有64位Windows 7 ,因此我对此表示肯定。

  • 如果有人知道如何确认我的Eclipse和Java是64位的,将不胜感激。
  • 如果您认为我的问题不同,请提供帮助!
  • 请尽我所能,因为我是Eclipse和Java的新手。

快捷方式目标:“ C:\ Program Files \ Eclipse-SDK-4.2-win32-x86_64 \ eclipse \ eclipse.exe” -vm“ C:\ Program Files(x86)\ Java \ jre7 \ bin \ javaw.exe”

完整的错误代码...:

Java was started but returned exit code=13
C:\Program Files (x86)\Java\jre7\bin\javaw.exe
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
-os win32
-ws win32
-arch x86_64
-showsplash C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins\org.eclipse.platform_4.2.0.v201206081400\splash.bmp
-launcher C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\eclipse.exe
-name Eclipse
--launcher.library C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v201205221813\eclipse_1503.dll
-startup C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
--launcher.overrideVmargs
-exitdata 1e30_5c
-vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar

这些天Windows倾向于在其中放置“程序文件(x86)”。我不确定如何检查您的Java版本,但是您可以随时卸载并重新下载它。
DGH 2012年


2
@ user1522092您如何访问错误消息文本?在我的电脑不能被复制,我必须键入键盘上...
托马什Zato -恢复莫妮卡

@TomášZato选择该错误消息并使用快捷键Ctrl +C。它将被复制。
SwapnilPopat

Answers:


207

有OS,JDK和Eclipse bitity的有效组合。就我而言,我在64位OS上使用64位JDK和32位Eclipse。将JDK降级为32位后,Eclipse开始工作。

使用以下组合之一。

  • 32位OS,32位JDK,32位Eclipse(仅32位)
  • 64位OS,32位JDK,32位Eclipse
  • 64位OS,64位JDK,64位Eclipse(仅64位)

743

您的Eclipse版本是64位,基于路径和文件名。但是,它所提取的Java版本是32位,如以下所示:

-vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe

Program Files (x86)是64位Windows放置32位程序的文件夹。

Program Files是64位Windows放置64位程序的文件夹。

当系统安装了多个JVM时(例如Windows 64位),通常会发生这种情况(例如,JRE下载页面使用浏览器的位来确定为您提供哪种位下载,并且许多人使用(d)32位浏览器,即使它们运行的​​是64位Windows)。

假设您实际上在系统上确实有64位JRE或JDK,则解决此问题的最佳方法是eclipse.ini确切指定要使用的JVM。Eclipse Wiki页面中详细说明了这些指令,但是基本上您必须-vm在ini文件中指定该选项-确保格式为特定格式,因此请仔细阅读Wiki页面。

eclipse.ini强烈建议在其中指定JVM路径,因为这样做可以将Eclipse与PATH某些程序安装程序可能对您的系统进行的任何潜在更改隔离开来(我正在与您聊天,Oracle!)。

另一个选择是下载并使用32位Eclipse而不是64位,但是仍然强烈建议在中指定JVM的路径eclipse.ini


留作历史参考

要检查您的Java版本,请运行

  Java版本 

在控制台中(命令提示符)。在具有64位Java 6的Windows 7上,我得到:

  Java版本“ 1.6.0_27”
  Java(TM)SE运行时环境(内部版本1.6.0_27-b07)
  Java HotSpot(TM)64位服务器VM(内部版本20.2-b06,混合模式)

请注意第三行,它显示这是一个64位版本。

在32位版本上,您将获得以下内容:

  Java HotSpot(TM)客户端VM(内部版本20.1-b02,混合模式,共享) 

如果您使用的是64位计算机,则可以安装64位JDK并卸载32位JDK。例如,在Windows 10上,只需转到“设置”,然后在“应用程序”下找到Java。单击它,您将找到所有不同的版本。现在,您可以选择卸载哪一个。


8
第三条评论对我有帮助。我不明白“ Java HotSpot(TM)客户端VM(内部版本20.1-b02,混合模式,共享)”到底是什么。现在我知道我必须下载java-64bit
Ozan Atmar,2014年

我该怎么做,我遇到了同样的问题,无法通过显式调用它来理解您的意思,您的意思像在命令提示符下一样吗
James Okpe George

3
那么我们如何让Eclipse使用正确的Java可执行文件/版本?
唐·奇德尔

2
答案显示了如何查找已安装的Java版本。缺少的是需要什么Java版本!
ingomueller.net 2015年

1
@ ingomueller.net所需的位取决于下载的蚀位。
Ungeheuer 2015年

251

我收到此错误,发现我的PATH变量(在Windows上)可能已更改。在我的PATH中首先输入以下内容:

C:\ProgramData\Oracle\Java\javapath

...并且Eclipse运行"C:\ProgramData\Oracle\Java\javapath\javaw"-给出了错误。我怀疑这是Java 8安装附带的东西。

我已经安装了几个Java版本(6,7和8),因此我从PATH中删除了该条目,并尝试再次重新启动Eclipse,效果很好。

如果对您不起作用,则需要升级JDK(至Java版本-在这种情况下为8)。

有关如何编辑PATH变量的说明


我只是发现了这个问题,并且注意到我的PATH env变量前面有相同的路径。昨天我刚刚安装了VirtualBox,所以我认为是罪魁祸首。
PolyMesh 2014年

13
我遇到了同样的问题,尝试了不同的选项,但仅在从PATH变量中删除了条目“ C:\ ProgramData \ Oracle \ Java \ javapath”之后才解决了。接得好!
Pablo 2014年

6
伟大的收获!伙计们检查您的Env.PATH变量并删除此C:\ ProgramData \ Oracle \ Java \ javapath; ...我猜是在JRE8更新之后添加的。
Chinmoy

所以.. oracle不仅删除了我的java7路径var,而且现在使用了“ ProgramData”?wtf?
Lou Morda

3
当您仅将其指向正确的目录时,为什么还要删除该条目?
b1nary.atr0phy '16

180

如果您最近安装了Java 8并卸载了Java 7,请安装JDK 8并重试。


11
这对我有用。我安装了Java 8(我安装了J7),但忘了安装JDK8。所以我做到了,“瞧”。谢谢!
Shudy 2015年

即使我从未卸载过任何其他版本的Java,这在安装Java 8之后对我来说仍然有效。
Charles J. Daniels'3

2
Mansour-在Java 8中,Oracle将先前版本的卸载与安装捆绑在一起。如果您在安装时选择了该选项,则卸载可能会一无所获。
WhyGeeEx 2015年

3
当我实际上只需要运行时时,我拒绝安装SDK。
ChristophK

需要明确的exit code=13是,这总是由Eclipse和JVM之间的位错匹配引起的。人们可以通过多种方式达到这一点,但最终并不是由特定版本的Java(6 vs. 7 vs. 8)或是否使用JRE vs. JDK引起的-它总是植根于一点-ness不匹配。请参阅上面接受的答案。
E-Riz 2016年

118

对我来说,解决方案是进入(在Windows 8.1上):

System > Advanced system setting > Environment Variables 

在“路径”变量的“系统变量”下,首先有以下内容:

C:\ProgramData\Oracle\Java\javapath;

我删除了它,Eclipse再次工作了!


1
同样在Windows 7上也可以使用,看来Java 8的安装弄乱了环境变量。
2015年

这对我有用(Win7 x64)。我怀疑此条目是在为Firefox安装32位jre 8之后添加的。
2015年

谢啦!我有OS(win7 x64),此解决方案提示Eclipse开始!
KostasA 2015年

完美的工作就像一种魅力:)在Windows 8 64位环境中为我工作
Sathesh Balakrishnan Manohar 2016年

我做的也差不多,只是把'C:\ ProgramData \ Oracle \ Java \ javapath;' 在我的“路径”的末尾(最后一个条目)中,让日蚀在“错误的” JVM之前找到“正确的” JVM。
Zorglube

64

我遇到了同样的问题,Java已启动,但返回了退出代码= 13

我的解决方案是为Windows属性变量名称 = PATH 变量值 = C:\ Program Files \ Java \ jdk1.7.0_02 \ bin创建一个环境变量,而不是C:\ Program Files(x86)\ Java \ jre7 \ bin

接下来,我在文件eclipse.ini→C:\ Program Files \ Java \ jdk1.7.0_02 \ bin \ javaw.exe中添加了一行。

那对我有用。


5
我已经更新了Java,因此Java更新更改了环境。可变值,固定环境。变种 价值,因此它开始起作用。
Mohit

5
谢谢Mohit,我也更新了firefox的java,并将路径变量更新为C:\ ProgramData \ Oracle \ Java \ javapath; 因此,日食尚未初始化。再次感谢。
farheen 2014年

1
谢谢Katusepi ...在我的情况下,它的工作就像是一种魅力...但是我不知道在Windows中没有my(administrator)许可的情况下环境变量如何变化.. !!!
Kannan_SJD 2015年

路径未正确到位的相同问题
TheZuck 2015年

谢谢,这节省了我很多时间。在我这边,我必须安装64位jdk并更改更新已更改的环境变量。
desw 2015年

24

在此处输入图片说明

通过执行以下步骤解决了该问题。

  1. Eclipse从'C:\ ProgramData \ Oracle \ Java \ javapath'查找JAVA可执行文件

  2. 文件夹结构将包含以下可执行文件的快捷方式,
    即 java.exe的
    II。java.exe
    iii。javaws.exe

  3. 对我来说,可执行路径指向我的Program Files(x86)(32位应用程序的宿主)文件夹位置

  4. 我将其更正为Program Files(用于存放64位应用程序),此问题已解决

请找到相同的屏幕截图。


这就意味着最高答案中提到的是32位与64位的问题。:)虽然
打起精神

1
提到的这些文件是使用Oracle的最新更新在我的PC上创建或更改的,以使其不起作用!那真的不是应该的... 32位更新只是默默地删除了64位安装
V15I0N 2015年

1
如何将其更改为64位程序文件?我右键单击java.exe>属性>快捷方式选项卡。目标字段无法更改。
stack1

您只需删除32位文件,然后从64位路径(在Program文件中)复制相同文件即可
dreamdeveloper

您只需删除32位文件,然后从64位路径(在Program Files \ Common Files \ Oracle \ Java \ javapath中)复制相同文件即可
dreamdeveloper

23

将vm参数添加到.ini文件对我有用

-vm
C:\Program Files\Java\jdk1.7.0_65\bin\javaw.exe

我的情况是Tomcat服务器(在eclipse之内)没有从早期运行中正确停止。因此,我不得不从Windows Task Manager中删除Eclipse。此后,日食不再开始。当我添加此解决方案时,它再次开始工作。似乎很奇怪,但这确实可以解决。
user1880957'4

22

有史以来最奇怪的修复。看看你的Eclipse的路径,并确保你没有奇怪的字符(如!#@)。它为我工作。


1
对此有未解决的问题吗?
2016年

13

找到eclipse.ini:

经常在C:\Users\xxx\eclipse\jee-neon\eclipse添加

-vm
 C:\Program Files (x86)\Java\jre7\bin\javaw.exe

--launcher.appendVmargs

吸引我注意的一个重要注意事项是-vm,按照文档中的说明
Brian Gleeson-IBM

11

我卸载了Java Update 25,此问题已解决。


3
那是因为您可能正在使用jdk 1.7,并且浏览器插件已为视频安装了Java 8 update 25。如果将jdk升级到1.8,在这种情况下该错误将消失。升级jdk或卸载插件。奇怪的解决方案。
Pritish Shah 2014年

我更新了Java版本,因为浏览器插件需要更新。无论如何它都无法正常工作,而我最终没有获得Eclipse的全部功能。糟透了!
维尼修斯·巴罗斯



10

原来,我只安装了32位Java运行时。

C:\Program Files (x86)\Java\jre1.8.0_45\

Eclipse真正想要的只是我安装64位Java运行时。<=已解决

Java SE Runtime Environment 8u45  jdk-8u45-windows-x64.exe

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Confirm your installation by checking you now have this folder

    C:\Program Files\Java\jre1.8.0_45\

也许您的意思是“ jre-8u45-windows-x64.exe”而不是“ jdk-8u45-windows-x64.exe”
Dane411



9

解决方案很简单:将“ eclipse”文件夹放在“ C:/ Program Files”上。如果不起作用,请将其放在“ C:/ Program Files(x86)”中。


1
该解决方案以及删除完整路径并仅使用“ Javaw.exe”对我有效。
史蒂夫·克莱恩

如果您正在管理托管Windows实例,请当心此解决方案。大多数IT / Sec域都锁定了Program Files目录树,以便进行写入访问,从而使日食黯然失色。
Stevko

7

我有同样的问题。我当时在64位操作系统上使用Windows 8。我只是将路径更改为Program Files (x86),然后开始工作。我将此行放在eclipse.ini文件中:

-vm
 C:\Program Files (x86)\Java\jre7\bin\javaw.exe

我是64位。当我安装jdk1.8.0_2064位时,它要求我重新启动。是的 它留在JRE Program Files (x86)在64位,只是一个DLL Program Files(没有javaw.exe),所以我指出了-vmProgram Files (x86)。我还是code=13。通过这个ashout.com/fix-java-started-returned-exit-code13-eclipse,我意识到“应该”匹配“是”或“是”的位版本。因此,我第二次运行了相同的JDK安装程序。令人惊讶的是,它部署了第一次丢失的新文件。现在可以-vm在中使用C:\Program Files\Java\jdk1.8.0_20\bin\javaw.exe
哈维·蒙特罗

那真的是文件中的两行eclipse.ini吗?
彼得·莫滕森

@PeterMortensen是的,您是否尝试过
Pir Fahim Shah

6

请确保你没有特殊字符(%$#在Eclipse的路径等)。


这是给我的!我的桌面上有eclipse文件夹,活动用户的用户名中有一个特殊字符。
Dave C

1
大约1/2年之前,贝洛的答案已经涵盖了这一点。
彼得·莫滕森

6

如果在具有32位JRE的PC上安装64位Eclipse版本,则可以保证会发生这种情况。

因此,解决方案非常简单:您需要通过更新任何一个来同步它们。当下载Oracle Fusion中间件并且Eclipse期望32位环境,而您的JRE是64位并且JAVA主目录指向64位JDK时,将发生这种情况。


我的情况确实如此。32位和64位之间的不匹配是经典的。在使用java -version之前,我什至不记得是否下载了64位版本
Maximiliano Rios 2015年

6
  1. 在系统环境变量下,确保已删除“ C:\ ProgramData \ Oracle \ Java \ javapath”。

  2. 在系统环境变量下,确保添加了“ C:\ Program Files \ Java \ jdk1.8.0_131 \ bin”。

在此处输入图片说明


5

我有这个问题。我通过Chrome安装了Java 8 update 25,然后尝试启动Eclipse之后出现了上述错误。

卸载该更新,Eclipse再次工作。


5

我尝试了一些解决方案,但不适用于我。

最后,我找到了另一种方法,...

转到环境变量系统变量

设置C:\ Program Files \ Java \ jdk1.7.0_02 \ bin \ javaw.exe设置为系统变量中的路径。

尝试一下。它对我有用...


1
我做了所有其他解决方案,但是它们对我的Windows 10无效。无论如何,您的解决方案对我有用,并节省了我很多时间……。非常感谢。
黛博拉

5

我尝试了以下解决方案:

我从路径C:\ Program Files \ Java \ jdk1.7.0_71 \ bin创建了javaw.exe的快捷方式,并将其粘贴到路径C:\ ProgramData \ Oracle \ Java \ javapath中

之后,我启动了Eclipse,它对我有用。


5

我也遇到了同样的问题。原来环境变量Path指向错误的Java版本。

请检查环境变量并将其指向正确的Java。例如:

C:\Program Files (x86)\Java\jdk1.6.0_17\bin

要检查环境变量,请转到:

Computer  properties  Advanced system settings  Advanced -> Environment variables

4

设置Windows 8.1 PC时,我刚刚解决了相同的问题。就像上面提到的@George Papatheodorou一样(抱歉,我无法添加评论),Eclipse和JRE必须均为64位或32位。

但是,对于Windows 8 / 8.1环境而言,默认情况下您将获得32位JRE(而且我不知道在何处更改该默认值以进行下载),如此处所述:http : //java.com/ zh / download / faq / win8_faq.xml

我使用的是64位Eclipse,因此存在差异。然后,我安装了32位Eclipse,这次一切正常。

因此,在更改任何环境变量之前,请检查您的JRE和Eclipse版本。

当然,您可以将64位JRE与64位Eclipse结合使用。只需确保它们匹配即可,因为Windows 8.1默认情况下会为您提供32位。


4

在Windows 7系统(64位系统)上安装Java 8之后,我遇到了类似的错误。

更改环境变量等无济于事。因此,我尝试删除Java Update 8,但这也无济于事。下载并安装Java 8 SDK的64位版本解决了我的问题。我希望这有帮助。


4

将JDK从1.7升级到1.8后,我遇到了同样的问题。我正在使用Eclipse 4.4(Luna)。将JDK降级到1.7后,该错误消失了。


4

请检查是否在“环境变量”部分中设置了两个JAVA路径。如果您已经安装了两个版本的JDK,则可能是这样,然后仔细检查您是否已将Java的PATH放入如下所示。

PATH -->  C:\ProgramData\Oracle\Java\javapath

并且

JAVA_HOME ---> C:\Program Files\Java\jdk1.7.0_02\bin

如果两者都存在,则可能会发生这种错误。

如果可以,请在“ .ini”文件中检查以下区域是否可以。打开“ .ini”文件并检查

 -VM  path is  C:\Program Files\Java\jdk1.7.0_79\bin\

如果没有,请像这样设置并再次运行。


1
请注意,jdk路径对我不起作用,它必须是jre
Maude

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.