jar包解压替换文件并重新打包

要解压一个JAR包,替换其中的某个JAR文件,然后重新打包并保证`META-INF/MANIFEST.MF`文件不会被替换,同时确保新的JAR包里的`BOOT-INF/lib`目录下的JAR文件不被压缩,可以按照以下步骤进行:

1. 解压原JAR包

mkdir original_jar
cd original_jar
jar -xvf ../original.jar

2. 替换指定的JAR文件

 将新的JAR文件拷贝到`BOOT-INF/lib`目录下,替换旧的文件。例如:

cp /path/to/new-file.jar BOOT-INF/lib/

3. 重新打包JAR文件

使用`zip`命令来创建新JAR包,这样可以控制压缩选项。为了确保`BOOT-INF/lib`目录下的JAR文件不会被压缩,我们需要在创建新的ZIP文件时指定不压缩这些文件。   

首先,创建一个临时目录来放置新的JAR包内容:

mkdir new_jar

然后,将所有内容复制到这个临时目录中:

cp -r * new_jar/

进入到新JAR包的根目录:

cd new_jar

   创建一个新的JAR包,其中`BOOT-INF/lib`目录下的JAR文件不被压缩:

zip -r -0 new.jar BOOT-INF/lib
find . -path './BOOT-INF/lib/*' -prune -o -print | zip -@ new.jar

   上述命令分两步完成:
   `zip -r -0 new.jar BOOT-INF/lib`:将`BOOT-INF/lib`目录下的所有文件打包进`new.jar`,但是不进行压缩(`-0`选项)。
   `find . -path './BOOT-INF/lib/*' -prune -o -print | zip -@ new.jar`:对除了`BOOT-INF/lib`目录下的文件之外的所有文件进行压缩并添加到`new.jar`中。

4. 验证新的JAR包

检查新的JAR包是否符合预期:

jar -tf new.jar

这样就完成了替换JAR文件并重新打包的过程,并且保证了`META-INF/MANIFEST.MF`文件没有被替换,同时`BOOT-INF/lib`目录下的JAR文件没有被压缩。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值