Unable to make private java.lang.StackTraceElement() accessible: module java.base does not 解决办法

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make private java.lang.StackTraceElement() accessible: module java.base does not "opens java.lang" to unnamed module @72035809
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:188)
	at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:181)
	at com.caucho.hessian.io.JavaDeserializer.<init>(JavaDeserializer.java:120)
	at com.caucho.hessian.io.StackTraceElementDeserializer.<init>(StackTraceElementDeserializer.java:60)
	at com.caucho.hessian.io.ContextSerializerFactory.<clinit>(ContextSerializerFactory.java:486)
	... 57 common frames omitted

这个错误信息表明你的代码在尝试通过反射访问java.lang.StackTraceElement的私有构造函数时遇到了问题。从Java 9开始,由于模块系统的引入,这种访问变得更加严格了。具体来说,java.base模块没有开放java.lang包给未命名模块(即不在任何命名模块中的代码)。 

解决方法:

可以在启动JVM时使用命令行参数来打开特定的包以供反射访问。 

--add-opens java.base/java.lang=ALL-UNNAMED

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值