Eclipse 2021-06:ClassFormatError 可访问:module java.base 不会向未命名的模块“打开 java.lang”

2022-09-02 20:42:37

升级到上一个Eclipse版本,现在我收到以下错误:

Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @5d01b0d8

我尝试在首选项下更改JDK,但没有运气。


答案 1

谢谢,@howlger使用JDK 16时它是龙目岛插件。那条推文给了我理由:https://github.com/projectlombok/lombok/issues/2810

解决方法:

  • 使用 Java 15 启动 Eclipse 或
  • 添加和到你的日食.ini--illegal-access=warn--add-opens=java.base/java.lang=ALL-UNNAMED
  • 或安装预建版本 (1.18.21)

在我的情况下,我不得不更改 eclipse.ini VM 路径:

-vm
C:\bin\jdk-15.0.2\bin

答案 2

一个简单的方法是更改用于运行 Eclipse 的 Java 版本。在那里,你必须改变日食.ini

  1. 将文件开头的 vm 位置设置为以前的 Java 16 JDK,例如 JDK 14
  2. 在 MacOSX eclipse 下.ini通常位于 /Applications/Eclipse.app/Contents/Eclipse/
  3. 原因是lombock插件不兼容

这是 eclipse.ini 文件的工作示例:

-vm
/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/bin/java
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.200.v20210527-0259
-product
org.eclipse.epp.package.java.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-javaagent:/Applications/Eclipse.app/Contents/Eclipse/lombok.jar
-Dosgi.requiredJavaVersion=11
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-Dsun.java.command=Eclipse
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
-Xms256m
-Xmx2048m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread

推荐