Eclipse - “不兼容的JVM。 JVM版本1.8.0_261不适用于此产品。需要11或更高版本。”

151
我刚刚下载了Eclipse的归档文件,并安装了最新的64位Java和64位Java Development Kit 15。但是我得到了这个错误。我之后安装了JDK 11,仍然得到同样的错误。 我该如何解决这个问题?

9
参见:https://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM该页面介绍了如何在 Eclipse 配置文件中指定使用的 Java 虚拟机 (JVM) 版本和参数。 - howlger
7
感谢夸赞。它有效了。但我仍在等待一个像C#和Visual Studio那样,Java和Eclipse能够直接使用的那一天。 - CommanderCat
2
@CommanderCat 这也不适用于多个 C# 版本的情况,就像你在 Java 中所遇到的一样。无论如何,这是一个不恰当的比较。 - Dave Newton
2
两者都是从官方Oracle网站下载的。即使只有一个JDK和JRE,它也无法正常工作。Java就是一团糟,你必须手动完成所有操作,这对于初学者来说非常糟糕。 - CommanderCat
1
Oracle现在提供的是JDK而不是JRE。从adoptopenjdk.net下载Java时,您是否遇到了相同的问题?13个Eclipse IDE包中有3个已经与Java一起发布:C/C++、Web/JavaScript和Rust开发人员的Eclipse(Oracle之前阻止了这种情况的发生)。未来,Java IDE也可能会随Java一起发布。问题不在于您需要等待别人向您免费提供什么,而在于我们需要等待多久才能看到您为您使用的开源工具和框架做出贡献。 - howlger
显示剩余3条评论
21个回答

210

可以在 eclipse.ini 文件中指定运行 Eclipse 所需的 Java 版本(参见 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虚拟机放入Eclipse安装的jre子目录中,或者如果您不安装Eclipse而是升级它,则在从Eclipse JustJ升级之前作为插件安装Java 11或更好的Java 14(使用JustJ OpenJDK Hotspot JRE Complete,而不是BaseMinimal)。

请注意,即使您使用Java 11或更高版本运行Eclipse,Eclipse 2020-09(4.17)仍支持使用Java 14、13、12、11、10、9、8甚至更早的版本(最低可达Java 1.1)。Java 15可通过Marketplace安装


13
这个解决方案帮助我解决了问题。我移除了“-vmargs”,并替换为只有“-vm”。 - dipakbari4
1
@DipakBari 在“-vmargs”之后的所有行都用作Java虚拟机的参数。删除“-vmargs”行可能会导致问题。 - howlger
7
请确保将"-vm"和路径"C:/..."放在不同的行上(与上面显示的完全一样)。我以为这不重要,但当你把它们放在同一行时,它就无法工作。 - smeier_ec
1
回应@smeier_ec的评论,需要两行代码。许多其他在线资源将其作为单行或省略.exe文件,但这是唯一有效的方法! - Daniel Widdis
1
@DanielWiddis 也许你读到的是关于命令行的内容。-vm 也可以用作命令行参数。例如,eclipse -vm ... 将覆盖 eclipse.ini 中的设置。 - howlger
显示剩余9条评论

100

我通过在Eclipse配置文件的顶部添加虚拟机参数解决了这个问题。

在此输入图片描述

文本格式:

-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

请您提供文本而非屏幕截图,可以吗? - Peter Mortensen
@PeterMortensen 更新了配置文本。 - Napolean
很遗憾,对我没有用。:( - lurker
在什么位置的顶部?编辑:对于未来的人们,如果你在Windows上,请使用“Get-ChildItem -Path . -Filter "eclipse.ini" -Recurse”。 - boardkeystown
解决JVM版本不适用于Eclipse的步骤。请查看此链接:https://paulsofts.com/how-to-resolve-eclipse-version-1-8-0_301-of-jvm-is-not-suitable-for-this-product-version-17-or-greater-version-is-required/ - undefined

30

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

例如,

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

2
这是正确的答案。因为问题要求使用Java 11,而不是让Eclipse与Java 1.8兼容。 - mostafa.S

26

我在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

Change it to

-Dosgi.requiredJavaVersion=1.8

并且重新启动Eclipse。它出现两次,所以需要在两个位置上进行更改。您可以尝试提供特定于您系统的Java版本(从步骤1的输出中获取)。这对我起作用了。


13
使用 Eclipse 12-2020 版本,我遇到了问题,在启动窗口显示后,出现了错误 An error has occurred. See the log file /Applications/Eclipse.app/Contents/Eclipse/configuration/1608542182018.log. - KhogaEslam
1
嗨@KhogaEslam - 你有机会检查日志了吗?出现了什么错误?这个错误是在Windows还是Linux上出现的? - 3AK
1
我刚刚安装了包含JRE的新版本。 - KhogaEslam
是的。这个修复方法对我在Windows 10上有效。 - Tihamer
但问题是,原始要求是1.8。如何将其更改为11? - Ming Leung

15

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

  1. 打开Eclipse文件夹,找到eclipse.ini文件。
  2. -vmargs选项之前添加-vm选项。
  3. 查找并复制JDK文件夹中javaw.exe文件的路径。
  4. eclipse.ini文件中,在-vm选项后面的新行中添加javaw.exe文件的路径。
  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呢? - pixel

7

所有其他答案都没有解决我的问题 - 这是唯一的方法。 - olivmir
请注意,如果你在 Windows 上安装了多个版本的 JAVA,并且使用 Eclipse 安装程序,则正确的版本可能未被预先选择。在我的情况下,11.0.9 被预选在下拉菜单中,这会产生错误的消息。请选择一个更高的版本。 - RWC

6

2
不要使用过时的软件,原因有安全性、性能、新功能和已经修复的错误!运行Eclipse 2020-09(4.17)非常容易,只有在某些情况下需要手动步骤。因此,不要浪费时间使用过时的软件。 - howlger

5

我遇到了同样的问题,采取以下简单步骤解决了问题。

步骤 - 1

前往Eclipse文件位置,并以可编辑格式打开eclipse.ini

步骤 - 2

前往Java文件夹位置,在其中找到javaw.exe
在我的情况下: C:\Program Files\Java\jdk-11.0.11\bin\javaw.exe

步骤 - 3

然后将以下内容粘贴到eclipse.ini文件中-vmargs标签之前。

-vm
C:\Program Files\Java\jdk-11.0.11\bin\javaw.exe

以下图片简要展示了:

enter image description here


3

对于MacOS用户:

如果您看到这个错误,但已经拥有11或更高版本,则需要在.ini文件中指定您的jdk二进制文件夹。

我在Eclipse Mat(Memory Analyzer)中观察到了这个错误,我猜想Eclipse IDE的过程类似。

按照以下步骤找到.ini文件(在执行这些步骤之前,您需要找到/知道您的jdk二进制文件夹!)

  • 进入应用程序文件夹
  • 右键单击应用程序,然后点击“显示包内容”
  • 进入Contents/Eclipse
  • 使用文本编辑器打开MemoryAnalyzer.ini
  • 在MemoryAnalyzer.ini中找到“-vmargs”
  • 在“-vmargs”之前添加以下内容
-vm
/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/bin
  • 在保存.ini文件更改后,您可以启动应用程序。

2

我遇到了同样的问题。在控制面板中卸载Java,然后重新启动您的IDE (EclipseIntelliJ IDEA)。


1
没错。我有两个版本的Java,删除旧版本后,问题消失了。 - H.Karatsanov
有比这更好的解决方案。 - Stephen C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接