springboot项目升级jdk17问题:Unable to make public final java.lang.Object java.util.HashMap$Node.getKey() a

springboot项目升级jdk17

遇到问题:
运行报错Unable to make public final java.lang.Object java.util.HashMap$Node.getKey() accessible: module java.base does not “opens java.util” to unnamed module @3f6b0be5

原因:
Java 9 及更高版本中,java.util 包属于 java.base 模块,并且默认情况下,java.base 模块不会向其他模块开放内部类和成员的访问权限。
HashMap.Node 是 java.util 包内的私有类,它在 Java 8 及更早版本中是可访问的,但在 Java 9 及更高版本中,由于模块化系统的限制,你不能直接访问它,除非你明确地打开了必要的权限。

解决方案:

在启动参数( JVM 参数)中使用 --add-opens

	--add-opens
	java.management/java.lang.management=ALL-UNNAMED
	--add-opens
	jdk.management/com.sun.management.internal=ALL-UNNAMED
	--add-opens
	java.management/sun.management=ALL-UNNAMED
	--add-opens
	java.base/java.time=ALL-UNNAMED
	--add-opens
	java.base/java.util.concurrent=ALL-UNNAMED
	--add-opens
	java.base/java.util.concurrent.locks=ALL-UNNAMED
	--add-opens
	java.base/java.security=ALL-UNNAMED
	--add-opens
	java.base/jdk.internal.loader=ALL-UNNAMED
	--add-opens
	java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
	--add-opens
	java.base/java.net=ALL-UNNAMED
	--add-opens
	java.base/sun.nio.ch=ALL-UNNAMED
	--add-exports
	java.base/sun.security.action=ALL-UNNAMED
	--add-opens
	java.base/java.lang=ALL-UNNAMED
	--add-opens
	java.base/java.math=ALL-UNNAMED
	--add-opens
	java.base/java.util=ALL-UNNAMED
	--add-opens
	java.base/sun.util.calendar=ALL-UNNAMED
	--add-opens=java.base/java.nio=ALL-UNNAMED
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值