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

如何通过bash脚本更新.ear文件内部的.jar文件并保存修改后的.ear文件

自动化替换EAR包内指定JAR的Bash脚本方案

前置要求

  • 系统已安装p7zip命令行工具:
    • Debian/Ubuntu 系执行命令安装:sudo apt install p7zip-full
    • RHEL/CentOS/Fedora 系执行命令安装:sudo dnf install p7zip p7zip-plugins
  • 确认本地文件路径符合预期:
    • 待修改的EAR包路径:~/Documents/older.ear
    • 新版JAR包路径:~/Documents/libs/updateme.jar
    • EAR包内需要替换的目标路径:APP-INF/libs/updateme.jar

可用Bash脚本

#!/bin/bash

# 自定义配置项,可根据实际路径修改
EAR_PATH="$HOME/Documents/older.ear"
NEW_JAR_PATH="$HOME/Documents/libs/updateme.jar"
TARGET_PATH_IN_EAR="APP-INF/libs/updateme.jar"
# 自动生成备份文件路径,带时间戳防止覆盖
BACKUP_EAR_PATH="${EAR_PATH}.bak.$(date +%Y%m%d%H%M%S)"

# 检查7z依赖是否存在
if ! command -v 7z &> /dev/null; then
    echo "错误:未检测到7z命令行工具,请先安装p7zip后再执行脚本"
    exit 1
fi

# 检查必要文件是否存在
if [ ! -f "$EAR_PATH" ]; then
    echo "错误:未找到目标EAR文件:$EAR_PATH"
    exit 1
fi
if [ ! -f "$NEW_JAR_PATH" ]; then
    echo "错误:未找到新版JAR文件:$NEW_JAR_PATH"
    exit 1
fi

# 备份原EAR文件,避免操作失误损坏原始文件
echo "正在备份原EAR文件至:$BACKUP_EAR_PATH"
cp "$EAR_PATH" "$BACKUP_EAR_PATH" || {
    echo "错误:备份EAR文件失败,脚本终止"
    exit 1
}

# 构造临时目录匹配EAR内路径结构
TMP_WORK_DIR=$(mktemp -d)
TMP_TARGET_DIR="$TMP_WORK_DIR/$(dirname "$TARGET_PATH_IN_EAR")"
mkdir -p "$TMP_TARGET_DIR"
cp "$NEW_JAR_PATH" "$TMP_TARGET_DIR/" || {
    echo "错误:复制新版JAR到临时目录失败"
    rm -rf "$TMP_WORK_DIR"
    exit 1
}

# 执行EAR包更新操作
echo "正在更新EAR包内的$TARGET_PATH_IN_EAR..."
cd "$TMP_WORK_DIR" || exit 1
7z u "$EAR_PATH" APP-INF/ > /dev/null 2>&1 || {
    echo "错误:更新EAR包失败,已保留原始备份文件"
    rm -rf "$TMP_WORK_DIR"
    exit 1
}

# 清理临时文件
rm -rf "$TMP_WORK_DIR"

echo "操作完成!已成功更新EAR包内的JAR文件"
echo "原始文件备份路径:$BACKUP_EAR_PATH"

使用步骤

  1. 将上述脚本内容保存为update_ear_jar.sh
  2. 给脚本赋予执行权限:chmod +x update_ear_jar.sh
  3. 直接执行脚本即可完成替换:./update_ear_jar.sh

注意事项

  • 脚本默认会备份原始EAR包,确认更新后的EAR包可用后可自行删除备份文件
  • 若EAR包内原本不存在APP-INF/libs/updateme.jar路径,脚本会自动新增该路径和对应文件
  • 若你的文件路径和示例不一致,修改脚本开头自定义配置项部分的对应路径即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:15:03