更换新电脑后Spring Tool Suite 4中Gradle构建失败求助
问题分析
核心错误Unsupported class file major version 65对应Java 21的字节码版本,你用的Gradle 5.6.3/6.9.4/7.3.3都不支持Java 21:
- Gradle 7.x最高仅支持到Java 19,且7.6才开始兼容Java 18
- Gradle 6.x最高支持Java 16
- Gradle 5.x最高支持Java 12
新电脑默认安装了Java 21,老Gradle版本无法处理高版本字节码,直接导致构建失败。
解决方案
1. 降级项目JDK版本
强制项目使用老Gradle兼容的JDK版本(比如Java 11或17,根据项目实际兼容情况选择):
- 修改
build.gradle配置:
java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 }
- 在STS中同步配置:右键项目 → Properties → Java Build Path → Libraries,移除Java 21依赖,添加兼容的JDK;再到Java Compiler页面,把Compiler compliance level改成对应版本。
2. 为Gradle单独指定JDK
不想全局降级JDK的话,给Gradle单独配置兼容版本:
- 项目根目录创建/修改
gradle.properties文件,添加:
org.gradle.java.home=/你的兼容JDK路径(比如C:/Program Files/Java/jdk-11.0.21)
- 或者在STS里配置:Window → Preferences → Gradle → Arguments,在VM arguments中加入
-Djava.home=/你的兼容JDK路径
3. 修复Gradle 8.9的Shadow Jar依赖缺失
如果想用Gradle 8.9临时解决,检查Shadow插件配置:
- 确保Shadow插件版本与Gradle 8.9兼容,建议用最新版(比如8.1.1):
plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' }
- 若为Spring Boot项目,补充Shadow Jar的Boot依赖处理配置:
shadowJar { mergeServiceFiles() manifest { attributes 'Main-Class': '你的主类全路径' } }
验证步骤
- 完成配置后执行
./gradlew clean build(Windows系统用gradlew.bat clean build) - 检查构建日志无报错后,用
java -jar 生成的Jar文件名.jar验证Jar是否能正常运行
内容的提问来源于stack exchange,提问作者keithdr1965
相关产品推荐
相关产品推荐

