我正在尝试使用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。点击它,你会发现所有不同的版本。现在您可以选择要卸载的程序。
我得到这个错误,发现我的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位。
结果发现我只安装了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位系统也是如此。
这有助于提高系统的性能。
上面的答案对我不起作用:我没有定义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\
如果不是,请将其设置为这样并重新运行。
冒着不能给现有答案增加太多价值的风险,但我自己也经历过这些混乱,我想看看我是否能巩固我解决问题的方法:
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路径