繁体   English   中英

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

[英]m2eclipse: Eclipse is running in a JRE, but a JDK is required

m2eclipse(0.10.0)和eclipse galileo(Build id:20090920-1017)有问题。

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

  • 在Window> Preferences> Java> Installed JREs中,我检查了JDK1.6.0_20。 什么都不行

  • 在Window> Preferences> Java> Installed JRE中,我删除了所有JRE。 只有已检查的JDK1.6.0_20仍然存在。 什么都不行

  • 在Window> Preferences> Java> Installed JREs> Execution Environments中我选择了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

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

答案是你必须在它们之间有换行符

-vm

和路径。

所以在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文件的不同行中。 最常见的错误之一是(应该用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

对于原始问题,似乎错误#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

虽然我指的是它应该使用JDK,但Eclipse报告它在JRE(Win7 x64,32位JDK 1.6更新21)中运行时遇到了同样的问题。

我最终删除了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

我认为你必须明确地将可执行文件添加到-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中使用反斜杠。

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

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

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

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

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

尝试添加此:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM