2010-05-27 64 views
41

我有一个m2eclipse(0.10.0)与eclipse galileo(Build id:20090920-1017)一起的问题。m2eclipse:Eclipse运行在JRE中,但需要JDK

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

  • 在Window> Preferences> Java>已安装的JRE中检查了JDK1.6.0_20。不工作

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

  • 在窗口>首选项> Java>已安装的JRE>执行环境我选择了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)。不工作。我添加了clean参数(C:\ Programme \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Program \ Java \ jdk1.6.0_20 \ bin -clean)。不工作。

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

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

新思路我曾尝试:

  • 在Eclipse桌面启动图标的首我把可执行末(C:\程序\ eclipse_galileo \日食\ -vm的eclipse.exe C:\程序\的Java \ jdk1.6.0_20 \斌\ 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

+1

有关'eclipse.ini'格式的具体示例,请参阅http://stackoverflow.com/questions/142357/what-are-the-best-jvm-settings-for-eclipse/1409590#1409590。 – VonC 2010-05-27 13:45:49

+0

如果你想提供更多的细节或澄清,请编辑你的问题。 – 2011-02-04 10:50:31

+0

可能关注的人:我曾经有过完全相同的问题,直到我更新到Indigo。施展咒语! – 2011-09-02 15:16:03

回答

2

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

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

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

+0

谢谢,您的第一个想法不起作用,我已将ini内容添加到了我的问题中。 – GernoK 2010-05-27 14:03:20

1

我尽快得到相同的错误消息,因为我从我的eclipse.ini文件中删除这两行

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

。 也许你应该在eclipse.ini中使用反斜杠。

+0

谢谢,我试过了,但它不起作用。 – GernoK 2010-05-27 14:17:05

+1

这应该起作用了。你检查过Eclipse是否在JDK上运行?你可以在帮助 - >关于Eclipse->安装细节 - >配置中做到这一点,有几个条目提示使用什么java版本(例如* eclipse.vm *或* sun.boot.class.path *)。 如果Eclipse真的使用JDK,你的问题可能是m2eclipse插件中的一个错误。 – Turismo 2010-05-28 09:49:40

+0

我不认为这是一个问题了,但我正在做一些事情并记住这一点。只是一个提示:使用像系统资源管理器这样的工具来查找eclipse使用的javaw.exe。 – 2010-06-10 08:49:34

0

有这里涉及到两个JVM中;将Eclipse在运行一个和一个(或多个),在您的工作空间中的不同的项目运行,我认为这消息是指Eclipse正在运行的JVM。因此,该解决方案不包含在“已安装的JRE “Eclipse中的部分。这是Windows中的路径中的JVM。

+0

我编辑了两个环境变量(Path和JAVA_HOME) - 但没有更改。错误消息仍然存在。 – 2011-02-04 10:51:48

0

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

在Windows XP中,这是控制面板,系统,高级选项卡,环境变量按钮下。

4

我曾与Eclipse的报告说,这是在JRE运行(Win7的X64,32位JDK 1.6更新21),即使我指定它应该使用JDK同样的问题。

我终于已删除JRE6它可以随JDK一起安装,并且消息消失。

对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 
0

尝试添加此:

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

难以置信,解决这个问题无关与斜线,bac kslashes,报价,空间,JRE,JDK,JVM,javaw进程,....

答案是,你必须有

-vm

与路径之间的换行。

所以在eclipse.ini文件:

这是行不通的:

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

但这会:

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

谢谢你,这对我来说是诡计! – 2011-06-05 10:18:52

+0

这是行不通的... – Prathap 2012-04-17 10:12:27

+0

是的,但你也需要照顾-vm的位置,必须是-vmargs。看看我的答案以上的完整解释。 – 2012-09-07 02:40:07

0

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

现在将-vm路径放到您的ini文件中,保存并且Eclipse现在将加载JDK。

我实际上继续前进并卸载了所有的Java,然后重新安装了JDK 6,而忽略了公共JRE和安装的数据库部分。

+0

卸载JDK会完成什么?为什么不更新-vm路径而不卸载? – GargantuChet 2012-12-04 22:22:54

2

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

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

马里奥奥特贡回答是正确回答这个问题。你需要做的唯一的事情就是在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。错误将会消失。

0

卸载方法是唯一适用于我的方法。直到我只安装了JDK之前,没有任何-vm的魔法才能实现。

0

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

+1

通过使用这个,你实际上忽略了所有-vmargs,最终使得整个Eclipse根本不会启动,例如一些需要-Xmx768m的大型项目。 – 2012-09-06 17:10:50

0

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

+1

您通过运气升级到Indigo来达到修复。在上面检查我的答案。 – 2012-09-06 17:06:54

10

我觉得这些都是编辑的eclipse.iniSTS.ini文件时需要回答:

很多人犯下这个错误,因为他们使某些假设(这是不正确的):

  1. 错误#1:写入在同一行的参数。与JVM命令行不同,Eclipse期望每个参数都放在其eclipse.ini文件中的不同行中。 其中最常见的错误的是(应该在2个独立的行被写入):

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

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

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

  4. 错误#4:指定-vm当指向代替二进制到JVM的路径。 Eclipse期望Java JVM二进制文件,而不仅仅是JAVA_HOME路径,例如-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 
+3

实际上..如果我-vm之后-vmargs,它将被-vmargs取代,如果您查看运行时配置,则可以看到它。它只适用于如果我有-vm之前-vmargs,后续产品。使用eclipse helios。 – eis 2012-09-26 14:11:50

+2

开普勒,vm无法初始化,如果-vm选项是-vmargs – Gab 2013-12-19 13:46:56

0

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

相关问题