Apache NetBeans 12.0启动报java.lang.IllegalAccessError异常如何解决?
问题原因
该异常由Apache NetBeans 12.0与JDK 17版本不兼容导致:
NetBeans 12.0发布时官方支持的最高JDK版本为14,JDK 17的模块系统收紧了内部API的访问权限,jdk.compiler模块默认未开放com.sun.tools.javac.util包给未命名模块访问,而NetBeans 12.0内置的Java解析器依赖该内部API,因此触发了访问权限错误。
解决方案
方案1:升级NetBeans版本(推荐)
直接升级到Apache NetBeans 12.6及以上版本,该版本开始官方正式兼容JDK 17,不需要额外修改配置即可正常运行。
方案2:保留NetBeans 12.0,修改启动参数
如果必须使用NetBeans 12.0版本,可通过添加JVM启动参数开放对应模块的访问权限:
- 打开NetBeans安装目录下的
etc文件夹,找到netbeans.conf配置文件 - 找到配置项
netbeans_default_options,在参数末尾追加内容:-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED - 保存配置文件后重启NetBeans即可
补充说明
NetBeans自身运行的JDK版本和项目使用的JDK版本可以独立配置,修改启动参数仅影响NetBeans本身的运行,不会干扰项目的编译、运行环境。
内容的提问来源于stack exchange,提问作者Sven Thimsen
相关产品推荐
相关产品推荐

