4

我刚刚安装了 Netbeans 12.0。当我开始我的第一个项目时,我在创建一个新的 java 类后收到了意外的错误消息。关于如何处理它的任何建议?

这是消息:

java.lang.IllegalAccessError: superclass access check failed: class org.netbeans.lib.nbjavac.services.CancelAbort (in unnamed module @0x439ece0a) cannot access class com.sun.tools.javac.util.Abort (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x439ece0a

这是我的系统信息:

Product Version = Apache NetBeans IDE 12.0
Operating System = Windows 7 version 6.1 running on amd64
Java; VM; Vendor = 16.0.1; Java HotSpot(TM) 64-Bit Server VM 16.0.1+9-24; Oracle Corporation
Runtime:Java(TM) SE Runtime Environment 16.0.1+9-24
Java Home:c:\program files\java\jdk-16.0.1
System Locale Encoding: pt_BR (nb); Cp1252
Home Directory: C:\Users\User
Current Directory: C:\Program Files\NetBeans-12.0
User Directory: C:\Users\User\AppData\Roaming\NetBeans\12.0
Cache Directory :C:\Users\User\AppData\Local\NetBeans\Cache\12.0
4

2 回答 2

6

您使用的是 JDK 16,它在 NetBeans 12.0 上不受支持。从NetBeans 12.0 的发布文档

Apache NetBeans 12.0 在JDK LTS 版本 8 和 11 以及 JDK 14 上运行,即在发布此 NetBeans 时的当前 JDK 版本。

您有两种选择来解决此问题:

  • 继续使用 NetBeans 12.0,但使用它支持的最新 JDK,JDK 14。
  • 安装更新版本的 NetBeans 并使用该版本支持的最新 JDK。例如,使用带有 JDK 16 的 NetBeans 12.4。

第二个选项更可取,因为您将获得 NetBeans 的错误修复,并且您还可以使用更新的 JDK。

仅供参考,基于 NetBeans 发布文档,这里是您可以与所有最新版本的 NetBeans 一起使用的 JDK 版本的摘要:

NetBeans 11.0:JDK 8、JDK 11、JDK 12

NetBeans 11.1:JDK 8、JDK 11、JDK 12

NetBeans 11.2:JDK 8、JDK 11、JDK 13

NetBeans 11.3:JDK 8、JDK 11、JDK 14

NetBeans 12.0:JDK 8、JDK 11、JDK 14

NetBeans 12.1:JDK 8、JDK 11、JDK 14

NetBeans 12.2:JDK 8、JDK 11、JDK 15

NetBeans 12.3:JDK 8、JDK 11、JDK 15

NetBeans 12.4:JDK 8、JDK 11、JDK 16

NetBeans 12.5:JDK 8、JDK 11、JDK 17(nb“实验性支持”)

NetBeans 12.6不那么简单:需要 JDK 11+,并且官方支持在 JDK 11 和 JDK 17 上运行,但如果使用 JDK 8 从源代码构建,则可以在 JDK 8 上运行,但禁用某些功能。

更普遍:

  • NetBeans 12.x 版(不包括上面提到的 12.6)正好支持三个 JDK:JDK8、JDK 11 和 NetBeans 发布时最新的 JDK。
  • 不支持在任何给定版本的 NetBeans 发布日期之后发布的 JDK。
于 2021-04-24T01:38:48.487 回答
0

我有同样的错误。我有 netbeans 12.0 和 jdk 16,但我能够通过更新来解决这个问题。在netbeans中,转到Help-> About->,然后查看是否有任何更新......让它发生,这个错误就会消失。

于 2021-08-16T12:33:15.330 回答