Java17
模块化,模块系统将 Java 分成了若干个可以独立部署和运行的模块,使得 Java 应用可以更快地启动并更好地利用硬件资源。
但在 java 模块化之后,有些内部类不能被访问了,在运行时报错
class Xxx cannot access class sun.util.calendar.ZoneInfoFile (in module java.base) because module java.base does not export sun.util.calendar to unnamed module 00x2812cbfa
比如我在使用 DTS 的 sdk 时候,报如下错误,导致不能启动
解决方法,在运行程序的命令加上参数 --add-opens java.base/sun.util.calendar=ALL-UNNAMED
启动程序
如果是命令行启动程序, java -jar --add-opens java.base/sun.util.calendar=ALL-UNNAMED -Dspring.profiles.active=dev /app.jar
如果idea 启动程序,在 vm options 添加参数后运行