项目使用jdk17 启动时会有 java.lang.reflect.InaccessibleObjectException: Unable to make field private int java.math.BigInteger.firstNonzeroIntNumPlusTwo accessible: module java.base does not “opens java.math” to unnamed module @38d2b39c 错误
解决方案:
在VM options 中添加如下参数
--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/sun.net.util=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
这样是可以解决所有报错,但是这样可能就会丢失jdk9引入模块化系统的优点,如果要上线的话,可能需要深入了解一下jdk模块化系统
学习博客:https://juejin.cn/post/6847902216590721031
参考:https://blog.csdn.net/qq_33919114/article/details/132160248