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

在第一次尝试在没有任何参数指定Java VM的情况下启动Eclipse之后,我得到了一条错误消息,说它在Eclipse文件夹中找不到一个名为javaw.exe的Java VM,所以我找到了Java安装的位置,并在快捷方式的目标中将该位置指定为参数。现在我得到一个不同的错误,Java已经启动,但返回退出代码=13。

类似的问题似乎表明这是一个32位/64位的冲突,但我有99%的肯定,我下载了64位版本的Eclipse和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

根据路径和文件名,您的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时,就会发生这种情况,在64位的Windows上通常就是这种情况(例如,JRE下载页面使用浏览器的位数来确定提供给您的下载位数,许多人使用(d) 32位浏览器,即使他们运行的是64位的Windows)。

解决这个问题的最佳方法(假设您的系统上确实有64位JRE或JDK)是在eclipse.ini中指定您希望它使用哪个JVM。这些说明在Eclipse wiki页面中有详细说明,但基本上你必须在ini文件中指定-vm选项——确保仔细阅读wiki页面,因为格式非常特定。

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

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


左为历史参考:

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

  java -version 

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

  java version "1.6.0_27"
  Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
  Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)

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

在32位版本上,你会得到这样的东西:

  Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) 

如果您使用的是64位机器,则可以安装64位JDK并卸载32位JDK。例如,在Windows 10上,只要进入设置,在应用程序下,你就会找到Java。点击它,你会发现所有不同的版本。现在您可以选择要卸载的程序。


这可能是由于内存太少。您可以修改eclipse.ini文件来增加内存。类似这样的内容可能对您有帮助:FAQ如何增加Eclipse可用的堆大小?


解决方案很简单:将“eclipse”文件夹放在“C:/Program Files”中。如果它不能工作,把它放在“C:/Program Files (x86)”中。


史上最奇怪的方法。查看Eclipse路径,确保没有奇怪的字符(比如!、#和@)。这对我很管用。


我有同样的问题,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文件中添加了一行。

这对我很管用。


确保在Eclipse路径中没有特殊字符(%、$、#等)。


我也有同样的问题。我使用的是64位操作系统的Windows 8。我只是把路径改为Program Files (x86),然后它就开始工作了。我把这一行放在eclipse.ini文件中:

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

我卸载了Java更新25,这个问题就解决了。


如果在同一台机器上有多个版本的Java,就可能发生这种情况。为了解决这个问题,我做了以下工作:

检查当前JAVA_HOME值。在Windows系统中,echo %JAVA_HOME% 访问javaw.exe的路由 替换了指向Java主位置的快捷方式。


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

所以解决方案很简单:你需要通过更新其中一个来使它们同步。当下载Oracle Fusion中间件时,Eclipse需要32位环境,而您的JRE是64位的,并且您的JAVA home指向64位的JDK时,就会发生这种情况。


我发现我错误地安装了32位的Eclipse,并试图将其与64位的JRE一起使用,这就是我得到这个错误的原因。要查看是否安装了32位或64位Eclipse,请参阅以下答案:https://stackoverflow.com/a/9578565/191761


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


我得到这个错误,发现我的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变量的说明


我刚刚在设置Windows 8.1电脑时解决了同样的问题。就像上面提到的@George Papatheodorou一样(抱歉我不能添加评论),Eclipse和JRE必须都是64位或32位。

然而,似乎对于Windows 8/8.1环境,默认情况下你将获得32位JRE(我不知道在哪里更改默认下载),如下所述:http://java.com/en/download/faq/win8_faq.xml

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

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

当然,您可以将64位JRE与64位Eclipse一起使用。只要确保它们匹配,因为Windows 8.1默认为32位。


我也面临着同样的问题。我已经安装了版本8和更新25 32位。

要修复此问题,请安装Java SE Development Kit 7 Update 71(64位)。然后通过appwiz。cpl,删除另一个版本,即Java Update 25。完成了。


我尝试了一些解决方案,但对我不起作用。

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

进入“环境变量→系统变量”

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

试一试。这对我很管用……


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

System > Advanced system setting > Environment Variables 

在“Path”变量中的“System variables”下,首先有以下内容:

C:\ProgramData\Oracle\Java\javapath;

我删除了这个,Eclipse又开始工作了!


通过执行以下步骤修复了该问题。

Eclipse从中找到JAVA可执行文件 甲骨文“C: \ ProgramData \ \ Java \ javapath” 文件夹结构将包含以下可执行文件的快捷方式, 即java.exe 2javaw.exe 3javaws.exe 对我来说,可执行路径指向我的Program Files(x86)(32位应用程序的主页)文件夹位置 我将其更正为Program Files(其中包含64位应用程序),问题得到了解决

请找到同样的截图。


我有一个x64位的JDK。我的路径设置里什么都没有。所以我安装了x86 JDK。这完美地解决了我的问题。


我尝试了以下解决方案:

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

在那之后,我发布了Eclipse,它为我工作。


如果没有任何工作,那么您可以尝试的最后一个解决方案是从您的计算机完全卸载Java,然后重新安装它,并确保路径变量设置正确。


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

卸载该更新后,Eclipse将重新工作。


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

改变环境变量等并没有帮助。所以我试图删除Java Update 8,但这也没有帮助。下载并安装64位版本的Java 8 SDK解决了我的问题。我希望这能有所帮助。


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


最好的答案是太长了。我不能评论,所以我补充了我的答案。

到这里: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载最新的SDK(如果您的计算机是x64,当然适用于x64) 安装它 现在聚会结束了,是时候使用Eclipse了;)


在我的例子中,重新安装Java JDK就成功了。我现在正在运行Eclipse 4.4 (Luna)。


当我忘记安装JDK时,我收到了这条消息。


我也遇到了同样的问题。结果是环境变量Path指向了一个错误的Java版本。

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

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

如果需要查看环境变量,请执行:

Computer → properties → Advanced system settings → Advanced -> Environment variables

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

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

增加更多细节

对于sts 3.9.18版本,我得到错误,Java已启动,但返回退出代码=13,对于最新版本相同 问题只是返回的退出码是14。这是因为默认选择的java是32位的,而这个版本的sts/eclipes是64位的。通过在STS.ini文件中设置64位java版本来解决这个问题 虚拟机 C: \ Progra ~ 1 \ Java \ jdk1.8.0_131 \ bin \ javaw.exe 这是在文件中的vmargs参数之前。


结果发现我只安装了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\

这种类型的错误主要是由于在不同版本的Eclipse中使用不同版本的Java造成的。

假设您正在系统上安装64位JDK。然后确保使用它安装64位版本的Eclipse。

如果您正在系统上安装32位JDK,那么请确保使用它安装32位版本的Eclipse。

我也有类似的问题。我已经安装了32位JDK,并试图使用64位Eclipse。

但是当我在系统上安装64位JDK时,Eclipse开始工作,没有任何问题。

建议在具有32位配置的系统上更好地安装32位版本的Java和32位版本的Eclipse,对于64位系统也是如此。

这有助于提高系统的性能。


我已经通过安装JDK (v7 update 80)解决了这个问题,而我以前只安装了JRE。

注意:这是针对IBM的RTC软件(构建在Eclipse上)。


上面的答案对我不起作用:我没有定义Java路径的环境变量,或者我的路径中没有Java。

但是,路径C:\ProgramData\Oracle\Java\javapath\javaw.exe总是出现在Eclipse 4.5 (Mars)错误弹出窗口中的-vm选项中,即使我试图在Eclipse .ini文件中覆盖。

我通过打开命令提示符,cd eclipse.exe所在的目录并使用MKLink来解决这个问题:

C:\EclipseMars> mklink javaw.exe "C:\Program Files\Java\jdk1.7.0_79\bin"
symbolic link created for javaw.exe <<===>> C:\Program Files\Java\jdk1.7.0_79\bin

不需要对eclipse.ini进行任何更改。

我确实尝试在eclipse.ini中指定-vm选项,并且它被考虑在内,但在错误弹出窗口中-vm选项出现了两次,即使在eclipse.ini中只有一个-vm。

在我的eclipse.ini中,我没有-vm选项,只是符号链接似乎已经纠正了它。


请检查是否在“环境变量”部分设置了两个JAVA路径。如果你已经安装了两个版本的JDK,那么仔细检查你是否像下面这样为Java设置了PATH。

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

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

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

如果没问题,然后在“。ini”文件中检查下面的区域是否OK。 打开“。ini”文件并检查

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

如果不是,请将其设置为这样并重新运行。


定位eclipse.ini:

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

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

--launcher.appendVmargs

有OS、JDK和Eclipse的工作组合。在我的例子中,我使用的是64位JDK和64位操作系统上的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位)


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


冒着不能给现有答案增加太多价值的风险,但我自己也经历过这些混乱,我想看看我是否能巩固我解决问题的方法:

Maintain separate Development from your normal machine environments. The reason for this is that there are probably many applications running on your machine that you are not aware of that need Java to be updated occasionally, for example banking and security applications. When those updates occur they change the environmental variables and so if you are using those in your development environment the update will almost certainly break your Eclipse setup. Install versions of Eclipse, either 32 and 64 bit depending on your plugins etc. The reason is that many plugins still require 32bit and trying to install them into a 64bit environment causes many obscure (very obscure) errors. This means for example you may have to have separate instances of Eclipse for your Java EE, PHP, Python, Assembler, etc, development environments. This may appear to be onerous, but for me this has been a blessing. Install two Java runtimes once again one 32bit and one 64bit and then edit the eclipse.ini for each of your installations to point to the correct JRE, not the JRE HOME in the environmental variables. I create a directory in C:\Java\64bit\jdk1.7.0_15\ and C:\Java\32bit\etc and in your eclipse.ini file you add the -vm C:\Java\64bit\jdk1.7.0_15\bin line to point to your needed java runtime.

一旦完成上述工作,您就可以随心所欲地安装Java sdk更新,但您的开发环境永远不会中断。如果您需要更新开发运行时环境,只需更改eclipse.ini中的-vm路径


I had the same issue... installed STS but consistently got the "java was started but returned exit code=13" message. My issue was that I was using the default install file, which was not processor specific, from https://spring.io/tools/sts. I had to dive deeper to be very specific in downloading the 64 bit version. It was not intuitive as to which version you were downloading. Once I got the 64 bit version (note that the zip file still includes 'win32' in the name, just appends '-64' at end) it worked.


您必须进入eclipse安装的文件夹,然后更改eclipse.ini文件。

你必须加上

-vm

C:\Program Files\Java\ jdk1.8.0_202 \ bin \ javaw.exe

您的eclipse.ini文件将如下面的截图所示


如果您的机器安装了多个Java版本,您可以简单地告诉eclipse从哪里使用javaw.exe。

在我的情况下,我有IBM JDK,也有oracle JDK,但对于eclipse拾取,在eclipse目录中的eclipse.ini文件中添加了下面的行,它工作了。

-vm
C:/WAS9DEV/java/8.0/bin/javaw.exe

在上面的例子中,你的java文件夹的路径必须被替换

希望能有所帮助。


在我的例子中,我有两个不同的JDK,分别是IBM和Oracle JDK。我把IBM JDK移动到Oracle JDK的环境变量的顶部,然后它工作了。注意:我将使用IBM JDK,所以我升级了。


在“路径”变量删除 “C:\ProgramData\Oracle\Java\javapath”,并将其替换为“C:\Program Files\Java\jdk1.8.0_212\bin”

这对我很管用。


可能是JDK组合问题,也可能是JDK版本问题,请选择合适的一个。我使用64位操作系统,64位JDK, 64位Eclipse IDE的组合。