You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何运行远程服务器上的Jar包?AWS CodeBuild执行报错排查

问题分析与解决方案

首先得明确一个关键限制:Java的java -jar命令没办法直接运行远程URL指向的Jar包——它只能读取本地文件系统里的Jar文件,这就是你碰到exit status 1错误的核心原因。

接下来给你具体的修复步骤,照着做就能解决:

  • 先把S3上的Jar包下载到CodeBuild环境本地
    CodeBuild默认预装了AWS CLI,而且只要你的构建服务角色有对应S3桶的读取权限,就能用它下载文件。修改你的post_build阶段配置如下:

    post_build:
      commands:
        # 把S3里的Jar包下载到当前工作目录
        - aws s3 cp s3://*****/hello-world-test-1.0-SNAPSHOT.jar ./
        # 运行本地的Jar包
        - java -jar hello-world-test-1.0-SNAPSHOT.jar
    

    记得把s3://*****替换成你实际的桶名和Jar文件路径。另外要确认CodeBuild的服务角色拥有s3:GetObject权限,否则下载会失败。

  • 检查网络与权限细节

    • 如果你的CodeBuild是部署在VPC内部的,要确保它能访问S3:要么配置NAT网关让环境能走公网,要么给VPC添加S3端点,这样AWS CLI可以通过内网访问S3,比公网更稳定。
    • 先在本地测试一下你的Jar包能不能正常运行,排除Jar包本身损坏的可能。
  • 额外提醒
    如果你的Jar包依赖其他外部文件,也要把这些文件一起下载到本地对应的路径,不然运行时可能会因为找不到依赖报错。

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

火山引擎 最新活动