Java应用运行遇tzdb.dat文件编译报错问题求助
解决IntelliJ+JDK20编译时tzdb.dat相关报错问题
问题重现
使用IntelliJ 2023.1搭配JDK 20.0.1编译Java项目时,出现指向C:\Program Files\Java\jdk-20\lib\tzdb.dat的模糊编译错误,尝试替换文件、使用tzupdater、重命名备份后问题未解决,甚至出现文件找不到的错误。
可行解决步骤
检查权限与JDK完整性
- 以管理员身份运行IntelliJ,避免因权限不足无法读取/修改JDK目录下的文件。
- 重新下载官方JDK 20.0.1安装包,执行覆盖安装(无需卸载原有JDK),确保tzdb.dat为完整的原始文件。
调整IntelliJ编译配置
- 打开
File > Project Structure(快捷键Ctrl+Alt+Shift+S),确认Project SDK指向正确的JDK 20.0.1路径,且该路径下lib/tzdb.dat存在。 - 进入
Settings > Build, Execution, Deployment > Compiler > Java Compiler,在Additional command line parameters中添加-XDignore.symbol.file,跳过符号文件检查后重新编译。
- 打开
正确替换tzdb.dat
- 优先将更新后的tzdb.dat放入项目的
src/main/resources目录,让应用优先加载项目内的时区数据文件,避免修改JDK系统文件。 - 若必须修改JDK文件:先备份原始tzdb.dat,右键以管理员权限打开文件管理器,将新文件复制到
C:\Program Files\Java\jdk-20\lib,并确保文件未设置只读属性。
- 优先将更新后的tzdb.dat放入项目的
系统时区与缓存清理
- 检查Windows系统时区设置,尝试切换时区后再切回原时区,或重启系统排除时区配置异常。
- 执行
File > Invalidate Caches...,选择Invalidate and Restart清除IntelliJ编译缓存,重启后重新编译项目。
内容的提问来源于stack exchange,提问作者Joey Tatú
相关产品推荐
相关产品推荐

