【问题标题】:Eclipse - "Incompatible JVM. Version 1.8.0_261 of the JVM is not suitable for this product. Version: 11 or greater is required"Eclipse - “不兼容的 JVM。JVM 版本 1.8.0_261 不适合此产品。版本:需要 11 或更高版本”
【发布时间】:2020-09-21 16:07:38
【问题描述】:

我刚刚将 Eclipse 作为存档下载并安装了最新的 64 位 Java 和 64 位 Java Development Kit 15。我收到了这个错误。之后我安装了 JDK 11 并得到了同样的错误。

我怎样才能做到这一点?

【问题讨论】:

  • @howlger 赞美你。有用。但我仍在等待 Java 和 Eclipse 像 C# 和 Visual Studio 一样开箱即用的那一天。
  • @CommanderCat 当您拥有多个版本的 C#(就像使用 Java 一样)时,这也无法“开箱即用”。无论如何,这是一个苹果和橘子的比较。
  • 都是从oracle官网下载的。即使使用一个 JDK 和 JRE,它也不起作用。 Java 简直是一团糟,您必须手动完成所有操作,这对初学者来说很糟糕。
  • Oracle 提供 JDK,不再提供 JRE。从adoptopenjdk.net 下载 Java 时是否遇到同样的问题? 13 个 Eclipse IDE 包中的 3 个已经随 Java 一起提供:Eclipse 用于 C/C++、Web/JavaScript 和 Rust 开发人员(Oracle 早先已经阻止了这种情况发生)。将来,Java IDE 也可能会随 Java 一起发布。问题不在于您需要等多久才能让其他人免费为您提供某些东西,而是我们需要等多久才能为您使用的开源工具和框架做出贡献。

标签: java eclipse


【解决方案1】:

运行 Eclipse 的 Java 可以在 eclipse.ini 文件中指定(参见 Eclipse wiki: eclipse.ini - Specifying the JVM)。在 -vmargs 行之前添加以下两行,并将路径调整为您的 Java 11 或更高版本的 64 位 Java VM 安装目录:

-vm
C:\Program Files\AdoptOpenJDK\jdk-14.0.2.12-openj9\bin\javaw.exe

或者,您可以将 Java VM 放入 Eclipse 安装的 jre 子目录中,或者,如果您不安装 Eclipse 但对其进行升级,则在从 Eclipse JustJ 升级之前安装 Java 11 或更好的 Java 14 作为插件(使用 JustJ OpenJDK Hotspot JRE Complete,而不是 Base 或 Minimal)。

请注意,即使您使用 Java 11 或更高版本运行 Eclipse,Eclipse 2020-09 (4.17) 仍然支持 Java 14、13、12、11、10、9、8 甚至更多的代码旧版本(低至 Java 1.1)。 Java 15 can be installed via Marketplace.

【讨论】:

  • 这个解决方案帮助我解决了这个问题。我删除了 -vmargs 并仅替换为 -vm
  • @DipakBari -vmargs 之后的所有行都用作 Java VM 的参数。删除 -vmargs 行可能会导致问题。
  • @hram908 编辑eclipse.ini 文件比更改JAVA_HOME 更好,因为JAVA_HOME 也被其他可能不适用于Java 11 的应用程序使用。
  • 确保将“-vm”和路径“C:/....”放在不同的行上(如上所示)。我认为这并不重要,但当你把它放在一行上时它就不起作用了。
  • 回应@smeier_ec 需要2 行的评论。网上很多其他地方都包含这个作为单行或省略 .exe 文件,这是唯一有效的!
【解决方案2】:

我通过在顶部的 Eclipse 配置文件中添加 vm 参数来解决它。

文本格式

-vm
C:\Program Files\Java\jdk-11.0.9\bin\javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1300.v20200819-0940
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=11
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM

【讨论】:

  • 能否请您提供文本而不是屏幕截图?
  • @PeterMortensen 更新了配置文本
  • 很遗憾对我不起作用。 :(
【解决方案3】:

这对我有用。确保在-vmargs 的eclipse.ini 之上添加-vm(Path_Of_Jdk)

例如,

-vm
C:\Program Files\Java\jdk-11.0.10\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=11

【讨论】:

  • 这是正确答案。因为问题说它想要使用 java 11。不要让 eclipse 与 java 1.8 一起工作。
【解决方案4】:

我在Linux 操作系统上遇到此错误,但以下解决方案应该适用于所有操作系统。

第 1 步:打开命令提示符

输入:java -version

你会看到这样的 -

openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~16.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
(may vary depending on your computer and OS)

第二步:打开eclipse.ini文件

文件位于 C:\Users\Yourusername\eclipse\java-2019-12\eclipse

找到以下行 -

-Dosgi.requiredJavaVersion=11

改成

-Dosgi.requiredJavaVersion=1.8

并重新启动 Eclipse。它有 两次,所以在这两个地方都要改变。您可以尝试提供特定于您系统的 Java 版本(来自步骤 1 的输出)。这对我有用。

【讨论】:

  • 使用 Eclipse 版本 12-2020,这对我不起作用,在显示启动窗口后我收到错误 An error has occurred. See the log file /Applications/Eclipse.app/Contents/Eclipse/configuration/1608542182018.log.
  • 嗨@KhogaEslam - 你有机会检查日志吗?错误是什么?您是否在 Windows 或 Linux 上收到此错误?
  • 我刚刚安装了包含 JRE 的新版本。
  • 是的。这个修复对我有用,在 Windows 10 上。
  • 但问题是,原来的要求是1.8。怎么变成11了?
【解决方案5】:

要解决不兼容的 JVM 异常,请为 Eclipse 指定特定的 JVM。

  1. 打开 eclipse 文件夹并查找 eclipse.ini 文件。
  2. 在 -vmargs 选项之前,添加 -vm 选项。
  3. 找到并复制JDK文件夹中javaw.exe文件的路径
  4. 在 eclipse.ini 文件中,将 javaw.exe 文件的路径添加到 -vm 选项后面的新行中。
  5. 保存 eclipse.ini 文件后重新启动 Eclipse。

因此,eclipse.ini 文件如下所示:

-startup
plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
--launcher.library
C:\Users\Admin\.p2\pool\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.200.v20210429-1609
-product
org.eclipse.epp.package.java.product
-showsplash
C:\Users\Admin\.p2\pool\plugins\org.eclipse.epp.package.common_4.20.0.20210612-1200
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm                                          //NEW
C:\Program Files\Java\jdk-16\bin\javaw.exe   //NEW
-vmargs
-Dosgi.requiredJavaVersion=11
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-Dsun.java.command=Eclipse
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM
-Declipse.p2.max.threads=10
-Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
-Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/

【讨论】:

  • 为什么你的 eclipse.ini 有 jdk-16 的路径,但 requiredJavaVersion 设置为 11?
【解决方案6】:

我遇到了同样的问题,并通过使用来自 https://www.eclipse.org/downloads/ 的安装程序重新安装它来工作,其中包括一个 JRE。

【讨论】:

  • 所有其他答案都没有为我解决这个问题 - 这是唯一的方法。
【解决方案7】:

我遇到了同样的问题,我下载了另一个版本的 Java EE Eclipse。我得到了 Eclipse 2020-06 (4.16):

https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2020-06/R/eclipse-jee-2020-06-R-win32-x86_64.zip

下载后,成功了。

【讨论】:

【解决方案8】:

我从https://www.oracle.com/java/technologies/javase-jdk15-downloads.html下载了JDK,并将解压后的内容放到Eclipse安装路径的jre子目录下——有一个路径eclipse/jre/bin/javaw.exe。 Eclipse 会自动选择它而不是任何其他安装。

【讨论】:

  • 我把它放在“-vmargs”部分之前
【解决方案9】:

窗口 => 首选项 => Java => 已安装的 JRE => 添加
(浏览 AdoptOpenJdk 11)如图所示 标记为默认(仅选择此版本 => 应用 => 保存)

【讨论】:

    【解决方案10】:

    我遇到了同样的问题。从控制面板卸载 Java 并重新启动 IDE(Eclipse 或 IntelliJ IDEA)。

    【讨论】:

    • 这是真的。我有两个版本的 java,删除旧版本后,问题就消失了。
    • 有比这更好的解决方案。
    【解决方案11】:

    我也遇到了同样的问题,但无论如何我都没有解决。

    然后安装下面的链接就解决了。

    https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2020-09/R/eclipse-inst-jre-win64.exe

    【讨论】:

    • 太神奇了!或许是explain 魔法?
    【解决方案12】:

    我在 Manjaro/Arch Linux 上启动 dBeaver 时遇到了这个问题,但出现了同样的错误。所有提供的建议都不适用于我的情况。

    我的解决方案是按照 post on the Manjaro Forum 设置 JVM:

    1. 检查已安装的版本

      ls /usr/lib/jvm

    2. 设置最新版本(在我的情况下为 16)

      sudo archlinux-java set java-16-jdk

    【讨论】:

      【解决方案13】:

      对于 Ubuntu 用户,请参考 howlger 的回答 https://stackoverflow.com/a/64049648/14489697。在文件eclipse.ini 中-vmargs 之前添加以下行:

      -vm
      /usr/lib/jvm/adoptopenjdk-14-openj9-amd64/bin/java
      

      上面是 Java 安装位置。根据你的改变这个。

      我正在使用,

      • 面向企业 Java 开发人员的 Eclipse IDE(包括孵化组件)
      • 版本:2020-12 (4.18.0)
      • 版本号:20201210-1552
      • 操作系统:Linux,v.5.4.0-42-generic,x86_64 / gtk 3.22.30
      • Java 版本:14.0.2

      【讨论】:

        【解决方案14】:

        如果您希望在不更改 eclipse.ini 文件的情况下解决此问题,只需重新安装 eclipse IDE。它可以是相同的版本或更新的版本。 我已经重新安装了相同的版本,它没有问题,不需要更改 eclipse.ini。

        【讨论】:

          【解决方案15】:

          谢谢。 这个对我有用 -vm
          C:\Program Files\Java\jdk-16\bin\javaw.exe 在 eclipse.ini 文件中添加了这些行

          【讨论】:

          【解决方案16】:

          在这里添加一个额外的答案,因为即使在使用 JDK 下的 javaw.exe 路径更新 eclipse.ini 文件后,我也无法启动我的 eclipse。我遇到了一个以

          开头的异常
          Java was started but returned exit code=1
          

          我必须按照https://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example 中的建议指向 java.dll 文件。 所以我最新的 eclipse.ini 看起来像

          -vm 
          C:\Program Files\Eclipse Adoptium\jre-11.0.14.101-hotspot\bin\server\jvm.dll
          

          另外,当我安装 JDK 11 时,它并没有随 JRE 一起提供。我不得不从https://adoptium.net/releases.html?variant=openjdk11&jvmVariant=hotspot单独下载JRE

          希望有人觉得这很有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-12-25
            • 2015-11-16
            • 2011-09-24
            • 2023-04-08
            • 1970-01-01
            • 1970-01-01
            • 2013-09-20
            • 2013-10-01
            相关资源
            最近更新 更多