转载请注明出处MTwz,谢谢_ (:з」∠)_
我是参考的这篇文章 高版本jdk的访问私有成员属性的正确姿势
这篇文章的作者已经把问题讲的很清楚了。我再写一篇blog的原因是想和大家分享一个点 —— 如果大家用的是JetBrains,且采用下图所示的方式修改JVM参数的话
需要注意参数不要配置错位置,因为我们要配置的是JVM参数而不是程序运行参数,具体的可以参考下面两张图
这里为了方便我复制了下引用文章中给出的参数
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.lang.invoke=ALL-UNNAMED
--add-opens java.base/java.math=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/java.nio=ALL-UNNAMED
--add-opens java.base/java.security=ALL-UNNAMED
--add-opens java.base/java.text=ALL-UNNAMED
--add-opens java.base/java.time=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/sun.net.util=ALL-UNNAMED
如果仍然报错的话,需要观察下报错中 YYY 和 ZZZ 的部分
Unable to make field private volatile XXX accessible: module YYY does not "opens ZZZ" to unnamed module @.....
然后变成一条新的语句加在下面
--add-opens YYY/ZZZ=ALL-UNNAMED
若仍存在问题,可在下方留言_(:з」∠)_
转载请注明出处MTwz,谢谢_ (:з」∠)_
如果您觉得阅读后有启发,可否点个 赞 呢~Thanks♪(・ω・)ノ