【问题标题】:Eclipse not able to open java files -> Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClassEclipse 无法打开 java 文件 -> 无法创建受保护的最终 java.lang.Class java.lang.ClassLoader.defineClass
【发布时间】:2021-11-12 00:25:48
【问题描述】:

添加Lombok lib后出现以下错误

An error has occurred. See error log for more details.
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 @1d1c37d5

【问题讨论】:

  • 您用[java-17][eclipse-2021-09] 标记了您的问题。由于 Eclipse 2021-09 不支持 Java 17,我猜您已经安装了 Java 17 Support for Eclipse 2021-09 (4.21),这是即将于 2021 年 12 月 15 日与 Eclipse 2021-12 (4.22) 一起发布的 Java 17 支持的预览版/BETA。请确保this issue has been reported to Eclipse 带有一个最小的可重现示例和错误日志。
  • JDK 17 不再支持--illegal-access=permit。如果以前的版本没有警告这种访问,那不是……

标签: java eclipse java-17 eclipse-2021-09 openjdk-17


【解决方案1】:

将以下行添加到eclipse.ini 文件的末尾

--illegal-access=warn
--add-opens java.base/java.lang=ALL-UNNAMED

【讨论】:

  • 由于您的问题专门提到了Java 17,因此指定--illegal-access=warn 没有意义,它不受支持,将被忽略。
  • 但它在 Java 17 上运行,我确实添加了 Lombok lib,之后我遇到了问题。我在 Java 15 中遇到 2021-06 的同样问题
  • 谢谢! 这解决了我在安装了 JDK 17 的 macOS 上尝试运行 Eclipse 2021-09(带有 lombok)时遇到的问题。如果没有这个修复,Eclipse 确实会启动并运行,但是每个导入的 Maven 项目都会被破坏并给出问题中的错误。我花了一整天的时间重新安装不同的 Eclipse 版本,重新导入项目,在 Eclipse 中选择不同的 JDK,使用和不使用 lombok 等等……没有任何效果。但是将这两行添加到eclipse.ini 解决了它。
  • @Thirumal 你交叉检查了吗?当您的计算机在您连接电源插头并将其涂成绿色后工作时,是否证明将其涂成绿色解决了问题?添加--add-opens java.base/java.lang=ALL-UNNAMED选项没有没有效果的--illegal-access=warn怎么样?
  • “我只是复制了这些行”——很好地总结了为什么我们被可怕的软件淹没了。即使是现在,在我明确告诉您这些是 两个 独立选项并且其中只有一个在 JDK 17 中有效之后,您甚至拒绝尝试理解。是的,没有绿色和拔下电缆,计算机无法工作,但插入电缆并涂上绿色涂料,计算机就可以工作。现在,你只需要明白这并不意味着绿色绘画是必要的。或者直接在 cmd 中执行jdk-17\bin\java --illegal-access=warn x 并注意警告信息。
【解决方案2】:

更新到 Lombok 1.18.22 插件导致这个问题对我来说消失了。我确实尝试添加 --add-opens 标志,但 Eclipse 启动器对此犹豫不决。恕我直言,这只是 Java 17 和 Lombok Eclipse IDE 插件不兼容的结果。

【讨论】:

    【解决方案3】:

    唯一对我有用的是直接从 lombok 网站下载 lombok,而不是使用 maven 文件夹中可用的那个。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2018-08-12
    • 1970-01-01
    • 2014-04-29
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多