使用jar命令删除.jar文件中的重复的类和目录并重新打包

引言:

android项目,引入的 .jar包 和 .aar中 有相同的类,导致编译冲突,由于这些依赖项没有上传到Maven仓库,无法使用 exclude 排除,只能尝试修改jar文件,删除重复的代码,再重新打包。

效果:

修改前的 test.jar(770k) :

删除了 com.zego目录,重新打包后的 test.jar (233k):

步骤:

下面记录一下修改jar文件的步骤:

技巧:先新建个文件夹,方便把 jar 的内容都集中在一起。

1、使用 jar命令 解压 test.jar文件:

dart 复制代码
jar -xvf test.jar

解压后的目录:

2、删除指定的文件或目录:

dart 复制代码
// rd adc.class// 删除某个文件
rmdir /s /q im // 删除im目录

修改后的目录:

3、重新打包jar文件:

dart 复制代码
jar cvf test.jar . //打包当前目录下所有的文件

新打包的jar文件:

相关推荐
小薛博客28 分钟前
22、Jenkins容器化部署Java应用
java·运维·jenkins
西贝爱学习32 分钟前
如何在 IntelliJ IDEA 中进行全局替换某个字段(或文本)
java·ide·intellij-idea
南部余额36 分钟前
Spring 基于注解的自动化事务
java·spring·自动化
alf_cee36 分钟前
通过Idea 阿里插件快速部署java jar包
java·ide·intellij-idea
坚持每天敲代码1 小时前
【教程】IDEA中导入springboot-maven工程
java·maven·intellij-idea
CodeCraft Studio1 小时前
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
java·python·pdf·spire.pdf·java创建pdf·从html创建pdf
阿方.9181 小时前
《数据结构全解析:栈(数组实现)》
java·开发语言·数据结构
YC运维1 小时前
Ansible题目全解析与答案
java·算法·ansible
程序员清风2 小时前
贝壳一面:年轻代回收频率太高,如何定位?
java·后端·面试
考虑考虑2 小时前
Java实现字节转bcd编码
java·后端·java ee