springboot项目启动报:module java.base does not “opens java.lang“ to unnamed module 解决方法
在将老项目从JDK 1.8升级到JDK 17后,运行时报错java.lang.reflect.InaccessibleObjectException,原因是JDK 9及以上版本引入了模块系统,导致旧代码和库不兼容。由于项目已上线,无法整体修改依赖,可以通过修改VM options参数解决。具体方法是在运行/调试配置中添加以下参数:--add-opens java.base/java.lang=AL
·
老项目从jdk 1.8升级到了jdk 17版本,结果运行报错:
java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.lang.Object.finalize() throws java.lang.Throwable accessible: module java.base does not "opens java.lang" to unnamed module @fa4c865
查了一下是java 9及更高版本,引入了新的模块系统,一些旧代码和库不兼容导致的。
因为项目已经上线,整体修改依赖肯定不可能了。
查了一下可以通过修改vm options的参数解决这个问题。
修改方法如下:
在运行/调试配置中,给启动项添加vm options参数,复制一下参数添加进去应用即可。
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED
操作如下图:
如果没有vm options可以按快接键ALT+V,或点击下图这个按钮
把上方代码复制一下,添加进去即可
应用后运行,报错就消失了
更多推荐
所有评论(0)