【问题标题】:m2eclipse: Eclipse is running in a JRE, but a JDK is requiredm2eclipse:Eclipse 在 JRE 中运行,但需要 JDK
【发布时间】:2011-02-24 16:12:00
【问题描述】:

我在使用 m2eclipse (0.10.0) 和 eclipse galileo(内部版本号:20090920-1017)时遇到问题。

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

  • 在 Window>Preferences>Java>Installed JREs 我检查了 JDK1.6.0_20。不工作

  • 在 Window>Preferences>Java>Installed JREs 我删除了所有 JREs。只有勾选的JDK1.6.0_20还在。不工作

  • 在 Window>Preferences>Java>Installed JREs>Execution Environments 我选择了 JavaSE-1.6 并检查了 JDK1.6.0_20[完美匹配]。不工作。

  • 在 Eclipse 桌面启动图标的首选项中,我添加了 -vm 参数(C:\Programme\eclipse_galileo\eclipse\eclipse.exe -vm C:\Programme\Java\jdk1.6.0_20\bin)。不工作。

  • 我添加了 clean 参数(C:\Programme\eclipse_galileo\eclipse\eclipse.exe -vm C:\Programme\Java\jdk1.6.0_20\bin -clean)。不工作。

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

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

我尝试过的新想法:

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

有没有人有其他想法?任何帮助表示赞赏。

非常感谢。 格诺克

【问题讨论】:

  • 查看stackoverflow.com/questions/142357/… 以获取eclipse.ini 格式的具体示例。
  • 如果您想提供更多细节或说明,请编辑您的问题。
  • 它可能关心的人:我曾经遇到过完全相同的问题,直到我更新到 Indigo。有效!

标签: eclipse maven-2 java m2eclipse


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我认为这些是编辑 eclipse.iniSTS.ini 文件时需要的答案:

      很多人犯这些错误是因为他们做出了某些假设(这是不正确的):

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

        -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 配置文件,例如,如果您使用 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
      

      【讨论】:

      • 其实..如果我在-vmargs后面有-vm的话,会被-vmargs取代,看运行时配置就可以看出。仅当我在 -vmargs 之前、-product 之后有 -vm 时才有效。使用日食 helios。
      • Kepler,如果 -vm 选项在 -vmargs 之后,则无法初始化 vm
      【解决方案4】:

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

      【讨论】:

      • 您可以通过升级到 Indigo 来解决问题。检查我上面的答案。
      【解决方案5】:

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

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

      关于 ini 文件,取决于完整的内容。您的 ini 文件包含什么内容?

      【讨论】:

      • 谢谢,您的第一个想法行不通,我已将 ini 内容添加到我的问题中。
      【解决方案6】:

      尝试添加这个:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

        • 通过使用它,您实际上忽略了所有最终使整个 Eclipse 根本无法启动的 -vmargs,例如大型项目的一些需求 -Xmx768m。
        【解决方案8】:

        卸载方法是唯一对我有用的方法。在我只安装了 JDK 之前,没有多少 -vm 魔法让它发生。

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

            卸载 JRE,只留下 JDK 和私有 JRE。运行 Eclipse,它会立即抱怨找不到 JRE 或 JDK(假设 -vm 选项在您的 ini 中丢失或错误)。

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

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

            【讨论】:

            • 卸载 JDK 会完成什么?为什么不直接更新 -vm 路径而不卸载?
            【解决方案11】:

            难以置信,这个问题的解决方法,和斜杠、反斜杠、引号、空格、jre、jdk、jvm、javaw、....无关。

            答案是你必须在之间有一个换行符

            -vm

            还有路径。

            所以在eclipse.ini文件中:

            这行不通:

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

            但这会:

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

            【讨论】:

            • 可以,但是你还需要注意-vm的位置,必须在-vmargs之后。查看我上面的答案以获得完整的解释。
            【解决方案12】:

            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
            

            【讨论】:

              【解决方案13】:

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

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

              【讨论】:

                【解决方案14】:

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

                【讨论】:

                • 我已经编辑了两个环境变量(路径和 JAVA_HOME) - 但没有任何变化。错误消息仍然存在。
                【解决方案15】:

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

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

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

                【讨论】:

                • 应该可以的。您是否检查过 Eclipse 是否在 JDK 上运行?您可以在 Help->About Eclipse->Installation Details->Configuration 执行此操作,有几个条目提示使用的 java 版本(例如 eclipse.vmsun.boot.class .path)。如果 Eclipse 真的使用 JDK,那么您的问题可能是 m2eclipse 插件中的错误。
                • 我认为这不再是一个问题,但我正在做某事并记住了这一点。提示:使用系统资源管理器之类的工具来了解 eclipse 使用的 javaw.exe。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-01-04
                • 1970-01-01
                • 2017-11-18
                • 1970-01-01
                • 2018-12-25
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多