17

背景:我有一个新的 eclipse 安装并安装了 m2eclipse 插件。启动 m2eclipse 后生成消息:

Eclipse 在 JRE 中运行,但需要 JDK

按照此处的说明,我将 eclipse.ini 文件更改为使用 JDK JVM:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.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:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe"

然而,在重新启动 eclipse 后,我仍然收到消息说它在 JRE 而不是 JDK 下运行。

通过Help -> About Eclipse -> Installation Details -> Configuration 查看eclipse 配置,似乎 eclipse 正在从其他地方获取 JVM 配置详细信息:

...
-vm
C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
eclipse.home.location=file:/C:/Program Files (x86)/eclipse/
eclipse.launcher=C:\Program Files (x86)\eclipse\eclipse.exe
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=epp.package.jee
eclipse.product=org.eclipse.epp.package.jee.product
eclipse.startTime=1252669330296
eclipse.vm=C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
eclipse.vmargs=-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-vm
"C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe"
-XX:MaxPermSize=256m
...

我的问题是第一个-vm参数来自哪里,如何删除或更改它?

谢谢

更新:我已经根据 VonC 的回答更新了 eclipse.ini 文件。我现在在启动 Eclipse 时遇到错误:

必须有 Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK) 才能运行 Eclipse。搜索以下位置后没有找到 Java 虚拟机:“C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe”

我已经确认路径正确,可以通过命令行执行。

完成下面的eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.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:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe"
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

解决方案: eclipse.ini 文件似乎仍有问题。我将其完全替换为 VonC 在他链接的帖子中给出的设置,并且 eclipse 现在可以正常启动并使用正确的 JVM。下面的完整 eclipse.ini 供其他有同样问题的人使用:

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
C:\Program Files (x86)\Java\jdk1.6.0_16\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins
4

8 回答 8

12

看:

有关参数顺序的示例。

-vm应该是之前-vmargs


6年后更新(2015)

E Riz在评论中提到,新的 Eclipse Installer将为您检测 JVM,或建议下载。

https://www.eclipse.org/downloads/assets/public/images/installer-instructions-04.png

于 2009-09-11T12:15:25.833 回答
7

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

-vm答案是你必须在和路径之间有一个换行符。

所以在 eclipse.ini 文件中:

这将不起作用:

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

但这会:

-vm
C:\java\jdk\bin\javaw.exe
于 2010-11-18T17:28:15.277 回答
2

我想你的机器是64位的windows?

我在站点中看不到 64 位 Windows 版本的 Eclipse。所以可能只有 32 位可用。你确定你的机器上安装了 32 位 JDK 吗?只是一个想法...

于 2009-09-11T12:44:20.883 回答
1

这也在 Eclipse 文档中得到解决: https ://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example

于 2015-01-25T10:51:14.473 回答
0

我的问题是 -vm "C:\Program Files\Java\jdk1.7.0_67\jre\bin\javaw.exe"

路径在引号中,当我删除它工作的引号时:

-vm C:\Program Files\Java\jdk1.7.0_67\jre\bin\javaw.exe

于 2015-03-11T16:15:23.853 回答
0

如果您使用的是 Windows,请右键单击 eclipse 快捷方式并选择属性,在快捷方式选项卡中,您可以更改目标:框中的内容以指定 jdk。我用

“C:\Program Files\eclipse-jee-galileo-sr1 (3.5.1)\eclipse.exe”-vm “C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe”-vmargs -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode 出于某种原因,当我尝试编辑 eclipse.ini 文件时,我无法让它使用 jdk。

如何在JDK中启动eclipse?

于 2014-02-14T06:39:59.500 回答
0

您应该在-vm 参数之后提及javaw.exe 的完整路径,而不使用双引号,即“”,每个-vm 和路径必须在不同的行中,并且-vm 必须在-vmargs 之前。例如:

-vm
C:\Program Files\Java\jrockit-jre1.6.0_45-R28.2.7\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m
-XX:+UnlockDiagnosticVMOptions
-XX:MaxClassBlockMemory=75M
于 2017-01-04T06:35:46.230 回答
-1

我解决了这个问题。

当您在 Eclipse 中创建 Maven 项目时,该项目的属性中的文本文件编码可能与project.build.sourceEncoding中的pom.xml不一样。当您构建此项目时,它也会报告“无法在:...中找到 Javac 编译器”错误。

例如,我的文本文件编码是 GBK,project.build.sourceEncoding是 UTF-8,所以发生了这个错误。我刚刚将文本文件编码修改为 UTF-8。

于 2011-08-19T03:15:29.873 回答