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

Spring Framework构建报错:无法匹配BellSoft Liberica Java 17工具链

解决Spring Framework源码构建的Gradle工具链问题

Spring Framework的官方构建脚本通过Gradle工具链强制指定了BellSoft Liberica厂商的Java 17,这就是你装了Oracle Java 17却依然报错的原因——Gradle工具链会严格匹配厂商、版本和系统架构要求。

以下是两种可行的解决方法:

方法1:安装BellSoft Liberica JDK 17(推荐)

这是最稳妥的方案,符合官方构建标准,避免后续测试或编译兼容性问题:

  • 下载适配Windows x86_64的BellSoft Liberica JDK 17版本(带完整JDK包即可)
  • 安装完成后,无需修改系统JAVA_HOME,Gradle工具链会自动扫描已安装的JDK。如果Gradle没自动识别,可在项目根目录的gradle.properties中手动指定:
    javaToolchainVendor=BellSoft
    javaToolchainVersion=17
    javaToolchainPath=C:\\Program Files\\BellSoft\\LibericaJDK-17-full
    
    注意替换路径为你实际的安装目录。

方法2:放宽Gradle工具链的厂商限制

如果不想更换JDK,可以修改项目的Gradle构建配置,去掉厂商强制要求:

  • 找到项目中配置工具链的文件(通常是根目录或spring-core等模块下的build.gradle.kts/build.gradle)
  • 定位到java块中的工具链配置,注释或删除厂商指定代码:
    原配置示例(Kotlin DSL):
    java {
        toolchain {
            languageVersion = JavaLanguageVersion.of(17)
            vendor = JvmVendorSpec.BELLSOFT
        }
    }
    
    修改后:
    java {
        toolchain {
            languageVersion = JavaLanguageVersion.of(17)
            // 移除vendor限制,允许任意厂商的Java 17
        }
    }
    
    注意:此方法可能导致部分官方集成测试不通过,因为Spring的测试用例是基于BellSoft JDK验证的。

IntelliJ配套配置调整

  • 打开File > Project Structure > Project,将Project SDK设置为你安装的Java 17版本(BellSoft或Oracle均可)
  • 进入File > Settings > Build, Execution, Deployment > Build Tools > Gradle,确保Gradle使用的JVM为Java 17,或者选择Use Gradle from: wrapper,让Gradle自动管理工具链

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:30:00