NetBeans12加载项目报Unsupported class file major version 60错误如何解决
问题原因
类文件主版本号60对应的是JDK 16编译生成的类格式,出现该错误的核心是当前使用的Gradle 6.8.3版本不支持识别JDK 16及以上版本编译的类格式,具体触发原因通常有两个:
- Gradle运行时使用的JDK版本过高:Gradle 6.8.3最高仅支持JDK 15作为运行环境,哪怕你的项目指定的编译目标JDK是13,只要NetBeans调用Gradle时用的是JDK 16+,就会在加载Gradle内置脚本阶段报这个错
- 项目依赖包含高版本编译的类:你引入的第三方依赖是用JDK 16及以上版本编译的,Gradle解析依赖时无法识别对应类格式
解决方案
你可以根据自己的项目情况选择任意一种适配方案:
方案1:升级Gradle到兼容高版本JDK的版本(推荐)
Gradle 7.0及以上版本原生支持JDK 16,升级步骤如下:
- 关闭NetBeans中当前打开的项目,删除路径
C:\Users\mv\.gradle\caches\6.8.3\scripts下的所有缓存文件,避免旧缓存报错 - 打开项目根目录下的
gradle/wrapper/gradle-wrapper.properties文件,将distributionUrl中的Gradle版本号修改为7.0+的稳定版即可,比如常用的7.6.4版本 - 重新打开NetBeans加载项目,等待Gradle自动拉取新版本并完成项目初始化即可
方案2:将Gradle运行JDK改为JDK 13(适合不想改动Gradle版本的场景)
你原本使用的JDK 13本身就在Gradle 6.8.3的支持范围内,只要调整NetBeans的Gradle运行配置即可:
- 打开NetBeans,依次进入 工具 > 选项 > Java > Gradle 选项卡
- 找到「Gradle JDK」配置项,下拉选择你本地安装的JDK 13,不要使用默认的系统JDK(如果你的系统全局JAVA_HOME指向的是JDK 16+)
- 清理上述的Gradle脚本缓存后重新加载项目即可
方案3:降级不兼容的第三方依赖
如果确认是项目依赖用了JDK 16编译的版本,排查build.gradle文件中的所有依赖项,替换为支持JDK 13的历史版本即可。
内容的提问来源于stack exchange,提问作者MaxV
相关产品推荐
相关产品推荐

