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

Spring Boot部署Heroku时Procfile的jar路径应如何正确配置

你当前Procfile的配置错误来自于使用了本地Windows的绝对路径,Heroku的运行环境为Linux,无法识别你本地的文件路径,导致web进程启动失败,最终抛出H14错误。

问题1:Procfile的路径与jar包配置

  • 绝对不能使用本地C盘开头的路径,该路径仅存在于你的个人电脑上,Heroku服务器不存在对应目录
  • Heroku的路径格式为Linux标准,使用正斜杠/,无需写绝对路径,直接使用相对于项目根目录的相对路径即可
  • Heroku执行Maven构建后,Spring Boot的可执行jar包默认存放在项目根目录的target文件夹下,你可以通过两种方式配置:
    • 简单写法:直接用通配符匹配,Procfile写为 web: java -jar target/*.jar
    • 稳定写法:在pom.xml的<build>节点下添加<finalName>app</finalName>,固定构建产物名为app.jar,Procfile写为 web: java -jar target/app.jar,避免多个jar包匹配混乱

注意要确保你的pom.xml中已经配置了spring-boot-maven-plugin的repackage目标,否则生成的jar不是可执行文件,会导致启动失败

问题2:是否需要本地自行构建jar包

不需要本地提前构建jar包,你只需要推送源代码到Heroku即可。
Heroku的构建功能会自动识别Java项目,根据你的pom.xml配置完成依赖拉取、代码编译、打包构建的全流程,运行环境和构建环境统一,可以避免本地与服务器环境差异带来的各类问题。你甚至可以将本地的target目录加入.gitignore,完全不影响部署流程。

问题3:Heroku构建产物的存储路径

Heroku会将你的应用部署在服务器的/app根目录下,构建生成的jar包路径为 /app/target/。如果需要查看具体的构建产物,可以在本地安装Heroku CLI后执行heroku run bash命令,连接到你的应用dyno,进入对应目录即可查看文件。

额外验证步骤

修改完Procfile重新推送后,如果还出现H14错误,可以执行以下命令确认web dyno已经开启:
heroku ps:scale web=1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:54:07