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

使用Java 19构建Xef项目失败,请求技术支持

解决方案:Gradle工具链检测Java 19失败问题

核心问题是Gradle无法识别你手动添加到SDKMAN的Java 19路径,提示路径下无java可执行文件,以下是几种可行的解决办法:

方案1:修复SDKMAN的Java 19路径配置

  1. 确认Temurin 19的实际安装路径:
    Mac上从Adoptium下载的Temurin 19默认路径为 /Library/Java/JavaVirtualMachines/temurin-19.jdk/Contents/Home,检查该路径下是否存在 bin/java 文件。
  2. 删除SDKMAN中错误的候选版本:
    sdk rm java 19.0.2-tem
    
  3. 重新添加正确的JDK路径到SDKMAN:
    sdk install java 19.0.2-tem /Library/Java/JavaVirtualMachines/temurin-19.jdk/Contents/Home
    
  4. 切换版本并验证:
    sdk use java 19.0.2-tem
    java -version  # 确认输出Java 19版本信息
    echo $JAVA_HOME  # 应指向上述的Contents/Home路径
    
  5. 重新执行构建:
    ./gradlew build
    

方案2:强制Gradle使用指定JDK路径

无需调整SDKMAN配置,直接在构建时指定JDK路径:

./gradlew build -Dorg.gradle.java.home=/Library/Java/JavaVirtualMachines/temurin-19.jdk/Contents/Home

或修改项目根目录的build.gradle.kts,添加工具链手动路径配置:

allprojects {
    plugins.withType<JavaPlugin> {
        configure<JavaPluginExtension> {
            toolchain {
                languageVersion.set(JavaLanguageVersion.of(19))
                installation.set(file("/Library/Java/JavaVirtualMachines/temurin-19.jdk/Contents/Home"))
            }
        }
    }
}

方案3:让Gradle自动下载Java 19工具链

配置Gradle自动从Adoptium下载所需Java版本,无需手动安装:
在项目根目录的settings.gradle.kts中添加以下内容:

gradle.settingsEvaluated {
    plugins.withId("java") {
        configure<JavaPluginExtension> {
            toolchain {
                languageVersion.set(JavaLanguageVersion.of(19))
                vendor.set(JvmVendorSpec.ADOPTIUM)
            }
        }
    }
}

重新执行构建后,Gradle会自动下载并配置Java 19工具链。

额外处理:消除签名警告

构建时出现的签名相关警告不影响构建成功,若要消除:

  • 执行构建时跳过签名任务:
    ./gradlew build -x sign
    
  • 或在项目根目录的gradle.properties中添加:
    signing.required=false
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:00:25