m2eclipse:Eclipse运行在JRE中,但是需要JDK

m2eclipse(0.10.0)和eclipse galileo(Build id:20090920-1017)一起出现问题。

我总是收到错误消息:“Eclipse运行在JRE中,但是需要JDK”。 我已经尝试了几件事情,但没有任何工作。 错误消息仍然存在。 以下是我尝试过的东西:

  • 在窗口>首选项> Java>已安装的JRE我检查了JDK1.6.0_20。 不工作

  • 在窗口>首选项> Java>已安装的JRE中,我删除了所有的JRE。 只有选中的JDK1.6.0_20仍然存在。 不工作

  • 在“窗口”>“首选项”>“Java”>“已安装的JRE”>“执行环境”中select了JavaSE-1.6并检查了JDK1.6.0_20 [完美匹配]。 不工作。

  • 在eclipse桌面启动图标的首选项中,我添加了-vm参数(C:\ Program \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Program \ Java \ jdk1.6.0_20 \ bin)。 不工作。

  • 我添加了干净的参数(C:\ Programme \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Programme \ Java \ jdk1.6.0_20 \ bin -clean)。 不工作。

  • 我将-vm参数添加到eclipse.ini文件中,并在换行符后添加了一个回车符,并在新行中添加了C:/Programme/Java/jdk1.6.0_20/bin/javaw.exe。 不工作。

  • 做完所有这些事情后,我删除了m2eclipse插件,并再次安装它。 不工作。

我尝试过的新想法:

  • 在eclipse桌面启动图标的首选项中,我把可执行文件放在最后(C:\ Program \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Programme \ Java \ jdk1.6.0_20 \ bin \ javaw.exe)。 不工作。

  • 我在eclipse.ini中更改了反斜杠。 不工作。

这是我的eclipse.ini文件:

-startup plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -product org.eclipse.epp.package.jee.product --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vm C:\Programme\Java\jdk1.6.0_20\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m 

有没有人有其他的想法? 任何帮助表示赞赏。

非常感谢你。 GernoK

令人难以置信的是,这个问题的解决scheme与斜杠,反斜杠,引号,空格,jre,jdk,jvm,javaw无关。

答案是你必须有一个换行符

-vm

和path。

所以在eclipse.ini文件中:

这不会工作:

 -vm C:\java\jdk\bin\javaw.exe 

但是这将是:

 -vm C:\java\jdk\bin\javaw.exe 

MARIO-ORTEGON的回答是解决这个问题的正确答案。 你唯一需要做的就是在eclipse.ini中的-product org.eclipse.epp.package.jee.product部分下面移动这一行“-vm C:\ java \ jdk \ bin \ javaw.exe”。 像这样:-product org.eclipse.epp.package.jee.product -vm C:\ java \ jdk \ bin \ javaw.exe保存并重启eclipse。 错误将会消失。

我认为这些是编辑eclipse.iniSTS.ini文件时需要的答案:

很多人犯这些错误是因为他们做了一些假设(这是不正确的):

  1. 错误#1:将参数写入同一行 。 与JVM命令行不同,Eclipse期望每个参数在其eclipse.ini文件中放在不同的行中。 最常见的错误之一是(应该用两行分开):

    -vm c:/Java/jdk1.6.0_31/bin/javaw.exe

  2. 错误#2:以错误的顺序写入-vm和-vmargs 。 序列确实重要。 -vmargs必须放在-vm之前。 为什么? 因为一旦指定了-vm ,虚拟机将被完全指定,剩下的-vmargs将被忽略。

  3. 错误#3:假设eclipse.ini将保持不变,如果你不改变它 。 一些插件安装可能有自动configuration(在重新启动后自动更改eclipse.ini文件或其他.iniconfiguration文件,例如,如果您使用的是SpringSource Tool Suite,则为STS.ini),则它们将在-vm之前随意添加-vmargs 。 检查-vm-vmargs的两次出现。

  4. 错误#4:指定-vm时指向JVM的path,而不是二进制 。 Eclipse期望Java JVM二进制文件,而不仅仅是JAVA_HOMEpath,例如-vm c:/Java/jdk1.6.0_31/bin/javaw.exe不只是-vm c:/Java/jdk1.6.0_31

对于原来的问题,似乎错误#2是原因。 而不是那个,你应该把-vm移到最后, -vmargs

 -startup plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -product org.eclipse.epp.package.jee.product --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -vm C:\Programme\Java\jdk1.6.0_20\bin\javaw.exe 

我也遇到了与Eclipse报告相同的问题,即使我指定应该使用JDK,它仍然在JRE(Win7 x64,32位JDK 1.6更新21)中运行。

我终于删除了可以随JDK安装的JRE6 ,并且消息消失了。

对Windows有更深入的理解的人将不得不解释为什么会这样做,但显然忽略了eclipse.ini设置,以及JAVA_HOME和在JRE中启动eclipse。

我的eclipse.ini:

 -vm C:/Java/jdk1.6.0_21/bin/javaw.exe -startup plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -product org.eclipse.epp.package.jee.product -nosplash org.eclipse.platform -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms32m -Xmx1024m -Xss6m -XX:PermSize=32m -XX:MaxPermSize=256m -XX:CompileThreshold=5 -XX:MaxGCPauseMillis=10 -XX:MaxHeapFreeRatio=70 -XX:+UseParallelGC -XX:+AggressiveOpts -Dcom.sun.management.jmxremote 

JAVA_HOME

 C:\Windows\system32>echo %JAVA_HOME% C:\Java\jdk1.6.0_21 

我想你必须明确地将可执行文件添加到-vm参数中:

 C:\Programme\eclipse_galileo\eclipse\eclipse.exe -vm C:\Programme\Java\jdk1.6.0_20\bin\javaw 

关于ini文件,这取决于完整的内容。 你的ini文件包含什么?

把这些行放在eclipse.ini文件的开头:

 -vm G:/dev/jdk1.6.0_19/bin/javaw.exe 

我收到相同的错误消息,只要我删除这两行

 -vm C:\Programme\Java\jdk1.6.0_10\bin\javaw.exe 

从我的eclipse.ini文件。 也许你应该在eclipse.ini中使用反斜杠。

这里涉及两个JVM。 Eclipse运行的那个,以及工作区中的不同项目运行的一个(或多个)。我认为这个消息是指Eclipse运行的JVM。所以,解决scheme不包含在“Installed JREs Eclipse中的部分。 这是Windows中的path中的JVM。

Java可能使用JAVA_HOME环境variables来查找它的文件。 尝试将其更改为C:\Programme\Java\jdk1.6.0_20

在Windows XP中,这是在“控制面板”,“系统”,“高级”选项卡,“环境variables”button下。

卸载JRE,只留下JDK和私有的JRE。 运行Eclipse,它会立即抱怨它找不到JRE或JDK(假设-vm选项在你的ini中缺失或错误)。

现在把-vmpath放到你的ini文件中,保存并且Eclipse现在将加载JDK。

实际上,我卸载了所有的Java,然后重新安装了JDK 6,从而省去了公共JRE和安装的数据库部分。

卸载方法是唯一的工作对我来说。 直到我只安装了JDK之前,没有任何-vm的魔法发生。

我有同样的问题,但解决了它。 添加-vm选项作为你的eclipse.ini文件中的第一行,它将起作用。

尝试添加这个:

 -vm E:\java\jdk1.6\jre\bin\client\jvm.dll 

我也有这个问题。 升级到Eclipse Indigo时,此问题消失。 所以试试更高的版本。

检查Eclipse的已安装的JRE设置。 它应该指向JDK而不是JRE。 虽然这是一个JRE设置。 记得JDK包含JRE,当Maven运行时,它试图找出JDK主要的tools.jar。