Jdk17 启动报错, java17 module java.base does not “opens java.math“ to unnamed module @1649b0e6

1. 使用java17 版本会报错:

Jdk17 启动报错, java17 module java.base does not “opens java.math“ to unnamed module @1649b0e6_第1张图片

2. 原因:

             java17 的模块化,模块系统将 Java 分成了若干个可以独立部署和运行的模块,使得 Java 应用可以更快地启动并更好地利用硬件资源。但在 java 模块化之后,有些内部类不能被访问了,在运行时报错

 3. 解决方案:

Jdk17 启动报错, java17 module java.base does not “opens java.math“ to unnamed module @1649b0e6_第2张图片

4. 编辑vm options:Jdk17 启动报错, java17 module java.base does not “opens java.math“ to unnamed module @1649b0e6_第3张图片

5. 加入以下内容(重点):

--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

6. 别人的文章只有一两个还是会报错,将上面的全部配置后就不会出现此问题!
 

你可能感兴趣的:(java,jdk)