背景:我有一个新的eclipse安装并安装了m2eclipse插件。启动后m2eclipse生成消息:
Eclipse在JRE中运行,但是在JDK中运行 是必需的
按照here的说明,我已将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下运行。
通过帮助查看eclipse配置 - >关于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 Development Kit(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
答案 0 :(得分:12)
请参阅:
有关参数顺序的示例。
-vm
应该在-vmargs
更新6年(2015年)
E Riz提到in the comments new Eclipse Installer 会为您检测JVM,或建议下载JVM。
答案 1 :(得分:7)
难以置信,对我来说这个问题的解决方案与斜杠,反斜杠,引号,空格,jre,jdk,jvm,javaw等无关。
答案是你必须在-vm
和路径之间换行。
所以在eclipse.ini文件中:
这不起作用:
-vm C:\java\jdk\bin\javaw.exe
但愿意:
-vm
C:\java\jdk\bin\javaw.exe
答案 2 :(得分:2)
我认为你的机器是64位窗口?
我在网站上看不到64位windows版本的eclipse。所以只有32位可用。 您确定机器中安装了32位JDK吗? 只是一个想法...
答案 3 :(得分:1)
这也在Eclipse文档中解决: https://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example
答案 4 :(得分: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。
答案 5 :(得分: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
答案 6 :(得分: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
答案 7 :(得分:-1)
我解决了这个问题。
在Eclipse中创建Maven项目时,此项目属性中的文本文件编码和project.build.sourceEncoding
中的pom.xml
不一样。当你构建这个项目时,它会报告“无法在:...中找到Javac编译器”错误。
例如,我的文本文件编码为GBK,project.build.sourceEncoding
为UTF-8,因此发生此错误。我刚刚将文本文件编码修改为UTF-8。