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

如何将Heroku构建环境的OpenJDK从8切换为11?

解决Heroku构建时始终使用OpenJDK 8的问题

针对你遇到的Gradle 7.5.1需要Java 11+但Heroku坚持用OpenJDK 8的情况,试试以下几个针对性方案:

  • 确认system.properties已正确提交到Git
    你添加的system.properties文件必须被提交并推送到main分支,Heroku只会读取Git仓库中的配置文件。执行以下命令确保文件已上传:

    git add system.properties
    git commit -m "Set Java 11 runtime version"
    git push heroku main
    

    另外,文件内容不要加注释,保持纯配置:

    java.runtime.version=11
    
  • 在build.gradle中明确指定Java版本
    在项目的build.gradle(或build.gradle.kts)中添加Java版本声明,让Gradle和Heroku构建插件明确知晓所需版本:
    Groovy写法:

    java {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
    

    Kotlin写法:

    java {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
    

    添加后提交并推送代码。

  • 重置Heroku的Java Buildpack
    确保使用Heroku官方的Java Buildpack,避免自定义或旧版Buildpack导致的配置失效:

    1. 查看当前使用的Buildpack:
      heroku buildpacks
      
    2. 如果不是官方的heroku/java,执行以下命令设置:
      heroku buildpacks:set heroku/java
      
  • 清除Heroku构建缓存
    旧的构建缓存可能残留Java 8的配置,清理后重新构建:

    heroku builds:cache:purge
    

    清理完成后重新推送代码触发构建。

  • 检查Procfile配置(如果存在)
    如果项目根目录有Procfile,确保启动命令没有硬编码指定Java 8的路径,保持命令简洁,比如:

    web: java -jar build/libs/your-app.jar
    

    让Heroku自动使用配置好的Java版本执行命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:20:45