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

dev*_*bcl 4 java eclipse lombok

升级到最新的 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
Run Code Online (Sandbox Code Playgroud)

我尝试在偏好下更改 JDK,但没有运气。

dev*_*bcl 9

谢谢,@howlger 这是使用 JDK 16 时的 Lombok 插件。那条推文给了我原因:https : //github.com/projectlombok/lombok/issues/2810

解决方法:

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

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

-vm
C:\bin\jdk-15.0.2\bin
Run Code Online (Sandbox Code Playgroud)

  • 答案中似乎有一些拼写错误: --add-opens=java.base/java.lang=ALL-UNNAMED 对我有用。 (5认同)
  • 经确认,JDK 17 也可以正常工作。 (3认同)
  • subversion 插件及其 SVN 连接器也有同样的问题。这立即修复了它! (2认同)