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.ini或STS.ini文件时需要的答案:
很多人犯这些错误是因为他们做了一些假设(这是不正确的):
-
错误#1:将参数写入同一行 。 与JVM命令行不同,Eclipse期望每个参数在其eclipse.ini文件中放在不同的行中。 最常见的错误之一是(应该用两行分开):
-vm c:/Java/jdk1.6.0_31/bin/javaw.exe
-
错误#2:以错误的顺序写入-vm和-vmargs 。 序列确实重要。 -vmargs必须放在-vm之前。 为什么? 因为一旦指定了-vm ,虚拟机将被完全指定,剩下的-vmargs将被忽略。
-
错误#3:假设eclipse.ini将保持不变,如果你不改变它 。 一些插件安装可能有自动configuration(在重新启动后自动更改eclipse.ini文件或其他.iniconfiguration文件,例如,如果您使用的是SpringSource Tool Suite,则为STS.ini),则它们将在-vm之前随意添加-vmargs 。 检查-vm或-vmargs的两次出现。
-
错误#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。