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

按Spring文档部署AWS上的Spring Boot应用时遇EXEC格式错误求助

解决思路

核心问题原因

Exec format error 是因为直接让systemd执行JAR文件——JAR本质是压缩包,不是系统可识别的可执行二进制文件,必须通过Java运行时来启动。

具体修复步骤

  1. 修改systemd服务配置
    打开/etc/systemd/system/deploy-demo.service,调整[Service]块的配置:

    [Service]
    User=gitlab-runner
    WorkingDirectory=/opt/deploy-demo/  # 新增:指定工作目录,确保加载同目录的.conf配置
    ExecStart=/usr/bin/java -jar /opt/deploy-demo/deploy-demo.jar
    SuccessExitStatus=143
    

    注意:/usr/bin/java是Java默认路径,若你的Java安装在其他位置,用which java命令查看真实路径替换即可。

  2. 验证Java环境与JAR可用性
    先手动测试JAR能否正常运行,排除基础问题:

    su gitlab-runner
    cd /opt/deploy-demo/
    java -jar deploy-demo.jar
    

    如果提示java: command not found,说明系统未安装Java,根据Linux发行版安装JRE,比如Debian/Ubuntu环境:

    apt install openjdk-17-jre-headless -y
    
  3. 调整配置文件权限
    当前deploy-demo.conf权限是-r--------,仅文件所有者可读,建议放宽权限避免潜在读取问题:

    chmod 640 /opt/deploy-demo/deploy-demo.conf
    
  4. 重新加载systemd并重启服务

    systemctl daemon-reload
    systemctl restart deploy-demo.service
    # 查看服务状态确认启动结果
    systemctl status deploy-demo.service
    

额外排查点

  • 确认JAR是正确打包的Spring Boot可执行JAR:用jar tf deploy-demo.jar查看是否包含BOOT-INF目录,没有则说明打包有误,需重新构建。
  • 手动启动JAR时,观察控制台输出,确认数据库连接地址、账号密码是否正确,以及AWS安全组是否开放了应用所需端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:10:35