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

Heroku CLI部署Java .war包报Error: spawn java ENOENT错误如何解决?

报错根因说明

Error: spawn java ENOENT错误的本质是Heroku CLI的Java部署插件无法在当前系统的环境变量PATH中找到java可执行程序,和CLI本身安装无关,无需重复重装CLI,按以下步骤排查即可:

排查处理步骤

1. 验证本地Java环境配置

Windows系统

  • 打开CMD或PowerShell,执行命令 java -version
  • 若返回“java不是内部或外部命令”,说明未安装JDK或未配置环境变量:
    • 安装Heroku支持的JDK版本(8/11/17均可,推荐OpenJDK或官方Oracle JDK)
    • 安装完成后,将JDK安装目录下的bin文件夹完整路径添加到系统环境变量PATH中
    • 重启所有终端窗口,重新执行java -version,确认正常返回Java版本号

Ubuntu系统

  • 打开终端,执行命令 java -version
  • 若返回“java: command not found”,执行命令安装JDK:sudo apt install openjdk-17-jdk
  • 安装完成后再次执行java -version验证配置生效

2. 修复Heroku Java部署插件

执行命令查看已安装的插件列表:heroku plugins

  • 若列表中无@heroku-cli/plugin-java,或插件状态异常,先执行卸载命令:heroku plugins:uninstall @heroku-cli/plugin-java
  • 再执行安装命令重新装插件:heroku plugins:install @heroku-cli/plugin-java

3. 排查路径特殊字符问题

如果war文件存放路径或系统用户名包含中文、空格、特殊符号,会导致插件无法正常读取文件:

  • 将待部署的store.war文件移动到无特殊字符的路径下(如Windows的C:\store.war、Ubuntu的/home/store.war)再执行部署命令

4. 手动指定Java路径绕开环境变量问题

确认Java安装正常但仍报错的情况下,可在部署命令前手动指定JAVA_HOME环境变量:

  • Windows PowerShell 执行示例:$env:JAVA_HOME="你的JDK安装绝对路径" ; heroku war:deploy store.war --app shielded-waters-44449
  • Ubuntu 执行示例:JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 heroku war:deploy store.war --app shielded-waters-44449

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:15:03