You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17执行时添加--add-exports参数解决非法访问错误

Java 17迁移时IllegalAccessError问题解决

修正Java执行路径

你当前命令用的是Java 8的JRE路径,迁移到Java 17后得换成对应版本的路径,比如:
/etc/alternatives/jre_17/bin/java

使用正确的JVM参数

你提到的参数有误,错误提示显示代码要访问sun.security.action.GetPropertyAction,所以需要的参数是--add-exports java.base/sun.security.action=ALL-UNNAMED,而非jdk.internal.misc相关的参数。

修改后的完整Ksh命令

/etc/alternatives/jre_17/bin/java $JAVA_OPTS --add-exports java.base/sun.security.action=ALL-UNNAMED -DDB_INFO_FILE=$DB_INFO_FILE -DRCFILE=$RCFILE -DSASPATH=/home/config -classpath $CLASSPATH com.myproject.Main 1>/dev/null 2>|$ERR_FILE &

注意事项

  • JVM参数(比如--add-exports)必须放在Java命令之后、主类名(com.myproject.Main)之前,位置错误会导致参数失效。
  • 该参数的作用是让你的未命名模块(原Jar基于Java 8编译,无模块描述文件)能够访问Java基础模块java.base中的受限包sun.security.action。

内容的提问来源于stack exchange,提问作者userLearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:13:16