我刚刚安装了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 filesjavajdk-16.0.1
System Locale Encoding: pt_BR (nb); Cp1252
Home Directory: C:UsersUser
Current Directory: C:Program FilesNetBeans-12.0
User Directory: C:UsersUserAppDataRoamingNetBeans12.0
Cache Directory :C:UsersUserAppDataLocalNetBeansCache12.0
您使用的是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。例如,将NetBeans 12.4与JDK 16一起使用
第二个选项更可取,因为您将获得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(n.b.">实验支持"(
NetBeans 12.6就不那么简单了:需要JDK11+,官方支持在JDK11和JDK17上运行,但如果使用JDK8从源代码构建,则可以在JDK8上运行,并禁用某些功能。
更一般地说:
- NetBeans的12.x版本(不包括上面提到的12.6(正好支持三个JDK:JDK8、JDK11和NetBeans发布时最新的JDK
- 不支持在任何给定版本的NetBeans发布日期之后发布的JDK
我也有同样的错误。我有netbeans 12.0和jdk 16,但我能够通过更新来解决这个问题。在netbeans中,转到"帮助"->关于->然后看看是否有任何更新。。。让这种情况发生,这个错误就会消失。