Spring Boot首次构建报错sun.util.calendar.ZoneInfoFile类初始化失败怎么办
问题原因
Could not initialize class sun.util.calendar.ZoneInfoFile报错属于JDK自身的时区数据加载异常,和你下载的Spring Initializer Demo项目无关,不会因为项目代码导致这个问题。
排查解决步骤
- 校验JDK完整性
首先执行java -version确认当前使用的JDK版本,再执行java -XshowSettings:properties -version查看java.home对应的JDK安装路径,排查该路径下的文件是否损坏。如果是第三方渠道获取的绿色版JDK,直接从官方渠道重新下载对应版本的完整安装包覆盖安装即可。 - 复位时区配置
如果你之前手动修改过JDK安装目录下jre/lib/zi目录的时区文件,或者用过工具修改过系统全局时区,先将系统时区切换为默认的UTC或Asia/Shanghai测试,删除自定义的时区配置文件,用JDK默认的时区文件替换。 - 强制指定JVM时区参数
在项目的构建/运行配置中添加JVM启动参数:-Duser.timezone=Asia/Shanghai。如果使用Maven构建,可将该参数加入MAVEN_OPTS环境变量;如果在IDE中构建,直接在项目的构建配置VM options项中添加即可。 - 排查多JDK版本冲突
如果你本地安装了多个JDK版本,确认项目构建工具(Maven/Gradle)、IDE项目SDK配置使用的JDK路径一致,避免构建时自动调用了其他损坏的JDK版本。
验证方式
调整完成后重新执行构建命令,比如Maven项目执行mvn clean compile,确认报错是否消失。
内容的提问来源于stack exchange,提问作者JGeo
相关产品推荐
相关产品推荐

