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

无法通过Jenkins在EC2上部署SpringBoot Jar包,报错状态码127

Jenkins部署SpringBoot Jar到EC2时出现Exit Status 127错误排查

问题描述

我尝试通过Jenkins将SpringBoot Jar包部署到EC2实例,已配置SSH服务器及SSH相关设置,但执行部署时出现以下错误:

ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [127]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE

不确定部署Jar包所用的Exec命令是否正确。

错误原因

Exit Status 127是Linux系统典型错误,代表执行的命令在当前环境中无法找到,常见诱因包括:

  • 命令拼写错误
  • 命令的绝对路径未正确指定(如java不在当前用户的PATH环境变量中)
  • 环境变量未加载(如非登录shell未读取.bashrc/.profile中的配置)
  • Jar包的目标路径错误或无权限访问

排查与解决步骤

  • 使用命令绝对路径执行
    先在EC2实例上通过SSH登录,执行which java获取Java的绝对路径(比如/usr/bin/java),然后在Jenkins的Exec命令中替换为绝对路径,同时指定Jar包的完整存放路径:

    /usr/bin/java -jar /home/ec2-user/deploy/app.jar &
    
  • 强制加载环境变量
    如果Java是自定义安装(如手动解压的JDK),可在命令前显式配置环境变量,或用登录shell执行命令确保加载所有配置:

    # 方式1:手动指定环境变量
    export JAVA_HOME=/opt/jdk1.8.0_301 && export PATH=$JAVA_HOME/bin:$PATH && java -jar /home/ec2-user/deploy/app.jar &
    # 方式2:用登录shell执行
    bash -lc "java -jar /home/ec2-user/deploy/app.jar &"
    
  • 手动验证命令有效性
    在EC2实例上使用Jenkins配置的SSH用户(如ec2-user),手动执行Jenkins中配置的完整命令,确认是否能正常启动SpringBoot应用,排除命令本身的语法或权限问题。

  • 检查Jenkins传输配置
    确认Jenkins的「Send build artifacts over SSH」步骤中,Jar包的传输目标路径正确,且该路径对SSH用户有写入权限;同时验证SSH服务器的连接配置(用户名、密钥/密码)能正常访问EC2实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:54:28