簡體   English   中英

Eclipse 2021-06:ClassFormatError 可訪問:模塊 java.base 未“打開 java.lang 模塊”以取消命名

[英]Eclipse 2021-06: ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module

升級到最后一個 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,但沒有成功。

謝謝,@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

一種簡單的方法是更改​​用於運行 Eclipse 的 Java 版本。 在那里你必須改變eclipse.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

最新版本的 lombok 1.18.22 已修復此問題。 將此版本的 lombok 安裝到您的 Eclipse 中。 那么這個問題就會得到解決。

更改 SpringToolSuite4.ini 如下:

-vm
C:\Users\my-id-here\softwares\openjdk-11.0.2\jdk-11.0.2\bin

並將 lombok.jar 替換為最新下載。 有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM