You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

终端执行Gradle构建时使用错误JDK版本问题排查

问题分析与解决方案

旧版本来源排查

1. Gradle Wrapper配置问题

你用的./gradlew是Gradle Wrapper,它自带一套独立的Gradle运行环境,如果项目里的Wrapper版本过低,会直接导致两个问题:

  • 旧版Gradle默认绑定的Kotlin版本更低(比如Gradle 7.x对应Kotlin 1.5.x)
  • 旧版Gradle对JDK17支持不足,会自动 fallback 到系统里的旧JDK

检查gradle/wrapper/gradle-wrapper.properties里的distributionUrl,Spring Boot 3.2要求Gradle 8.0+,如果你的url还是https://services.gradle.org/distributions/gradle-7.x-bin.zip这类旧版本,那这就是核心问题。另外,gradle.properties里如果配置了org.gradle.java.home指向JDK11的路径,也会强制Gradle使用旧JDK。

2. 终端的JDK环境变量

IDEA可以单独配置项目专属的JDK,但终端默认使用系统环境变量。执行echo $JAVA_HOME和java -version,如果输出是JDK11,说明终端全局用的就是旧JDK,Gradle会优先读取这个环境。

3. Gradle全局配置

用户目录下的~/.gradle/gradle.properties或者系统级的/etc/gradle/gradle.properties,可能提前设置了org.gradle.java.home或kotlin.version,直接覆盖了你项目里的配置。

解决步骤

  1. 升级Gradle Wrapper版本
    打开项目后,要么在IDEA里执行Tasks > wrapper > wrapper任务,要么手动修改gradle/wrapper/gradle-wrapper.properties的distributionUrl为Gradle 8.x版本(比如https://services.gradle.org/distributions/gradle-8.5-bin.zip),然后执行./gradlew wrapper更新Wrapper。

  2. 修正终端的JDK环境

    • 临时生效:终端里执行export JAVA_HOME=/path/to/jdk17和export PATH=$JAVA_HOME/bin:$PATH,再重新跑./gradlew build
    • 永久生效:修改终端配置文件(比如~/.bashrc、~/.zshrc),把JAVA_HOME指向JDK17的路径,重启终端后生效。
  3. 检查全局Gradle配置
    打开~/.gradle/gradle.properties,删除或修改里面的org.gradle.java.home、kotlin.version这类全局配置,避免覆盖项目设置。

  4. 验证配置生效
    执行./gradlew --version,如果输出的JVM版本是17、Kotlin版本是1.9.22,说明配置正确,再执行./gradlew build即可。

内容的提问来源于stack exchange,提问作者Khantahr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 23:07:37