1. 使用java17 版本会报错:
2. 原因:
java17 的模块化,模块系统将 Java 分成了若干个可以独立部署和运行的模块,使得 Java 应用可以更快地启动并更好地利用硬件资源。但在 java 模块化之后,有些内部类不能被访问了,在运行时报错
3. 解决方案:
4. 编辑vm options:
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. 别人的文章只有一两个还是会报错,将上面的全部配置后就不会出现此问题!
评论记录:
回复评论: