1. 使用java17 版本会报错:

2. 原因:

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

3. 解决方案:

4. 编辑vm options:

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

--add-opensjava.base/java.lang=ALL-UNNAMED--add-opensjava.base/java.lang.reflect=ALL-UNNAMED--add-opensjava.base/java.lang.invoke=ALL-UNNAMED--add-opensjava.base/java.math=ALL-UNNAMED--add-opensjava.base/sun.net.util=ALL-UNNAMED--add-opensjava.base/java.io=ALL-UNNAMED--add-opensjava.base/java.net=ALL-UNNAMED--add-opensjava.base/java.nio=ALL-UNNAMED--add-opensjava.base/java.security=ALL-UNNAMED--add-opensjava.base/java.text=ALL-UNNAMED--add-opensjava.base/java.time=ALL-UNNAMED--add-opensjava.base/java.util=ALL-UNNAMED

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