使用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文件:

相关推荐
lyw20561929 分钟前
RabbitMQ,Kafka八股(自用笔记)
java
邹诗钰-电子信息工程31 分钟前
嵌入式自学第二十一天(5.14)
java·开发语言·算法
有梦想的攻城狮39 分钟前
spring中的@MapperScan注解详解
java·后端·spring·mapperscan
寒小松1 小时前
Problem E: List练习
java·数据结构·list
zimoyin1 小时前
Kotlin 协程实战:实现异步值加载委托,对值进行异步懒初始化
java·前端·kotlin
柚个朵朵2 小时前
Spring的Validation,这是一套基于注解的权限校验框架
java·后端·spring
2301_803554522 小时前
c++和c的不同
java·c语言·c++
意倾城2 小时前
JVM内存模型
java·jvm
普通的冒险者2 小时前
几个简单的数组小练习(适合初学)
java·数据结构
keke102 小时前
Java【10_1】用户注册登录(面向过程与面向对象)
java·python·intellij-idea