我正在尝试使用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版本是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。点击它,你会发现所有不同的版本。现在您可以选择要卸载的程序。

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

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

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

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

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