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

时间:2010-05-27 13:24:03

标签: eclipse maven-2 java m2eclipse

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>执行环境中我选择了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:\ Program \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Program \ Java \ jdk1.6.0_20 \ bin -clean)。不行。

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

  • 完成所有这些操作后,我删除了m2eclipse插件并再次安装。不行。

我尝试过的新想法:

  • 在eclipse桌面启动图标的首选项中,我将可执行文件放在最后(C:\ Program \ eclipse_galileo \ eclipse \ eclipse.exe -vm C:\ Program \ 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

15 个答案:

答案 0 :(得分:26)

难以置信,这个问题的解决方案与斜杠,反斜杠,引号,空格,jre,jdk,jvm,javaw等无关。

答案是你必须在

之间换行

-vm

和路径。

所以在eclipse.ini文件中:

这不起作用:

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

但愿意:

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

答案 1 :(得分:13)

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

答案 2 :(得分:11)

我认为这些是编辑 eclipse.ini STS.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 ,就会完全指定VM,并忽略其余的-vmargs。

  3. 错误#3:假设如果你不改变它,eclipse.ini将保持不变 。某些插件安装可能具有自动配置(在重新启动后自动更改eclipse.ini文件或其他.ini配置文件,例如STS.ini,如果您使用的是SpringSource Tool Suite),他们将不加选择地追加 - vm -vmargs 之前。检查 -vm -vmargs 的双重发生。

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

  5. 对于原始问题,似乎 Mistake#2 是原因。在 -vmargs 之后,您应该将 -vm 移到最后:

    -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 :(得分: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

答案 4 :(得分:2)

我认为您必须将可执行文件显式添加到-vm参数:

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

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

答案 5 :(得分:2)

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

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

答案 6 :(得分:1)

我删除这两行后会收到相同的错误消息

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

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

答案 7 :(得分:0)

这里涉及两个JVM;运行Eclipse的那个以及工作空间中不同项目运行的那个。我认为此消息指的是Eclipse正在运行的JVM。因此,解决方案不包含在“已安装的JRE中” “Eclipse中的部分。它是Windows中的JVM。

答案 8 :(得分:0)

Java可能正在使用JAVA_HOME环境变量查找其文件。尝试将其更改为C:\Programme\Java\jdk1.6.0_20

在Windows XP中,它位于“控制面板”,“系统”,“高级”选项卡,“环境变量”按钮下。

答案 9 :(得分:0)

尝试添加此内容:

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

答案 10 :(得分:0)

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

现在将-vm路径放入ini文件中的javaw,保存,Eclipse现在将加载JDK。

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

答案 11 :(得分:0)

卸载方法是唯一对我有用的方法。在我只安装了JDK之前,没有任何-vm魔法可以实现。

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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