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

相关推荐
Croa-vo8 小时前
Tesla Spring 2026 Co-op 面经:CodeSignal真题解析与通关攻略
java·后端·spring
C***u1768 小时前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
CodeAmaz8 小时前
Spring 事务失效的 8 种常见场景总结
java·spring·事务失效
隔山打牛牛8 小时前
Spring 整合 MyBatis 深度详解(原理 + 实操 + 源码级解析)
java·spring·mybatis
华仔啊8 小时前
SpringBoot 动态菜单权限系统设计的企业级解决方案
java·后端
S***q3778 小时前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
棋啊_Rachel9 小时前
Spring Boot深度解析:从零开始构建企业级应用
java·spring boot·后端
小王不爱笑1329 小时前
代码生成器
java·mybatis
Slow菜鸟9 小时前
Java开发规范(五)| 接口设计规范—前后端/跨服务协作的“架构级契约”
java·状态模式·设计规范
Slow菜鸟9 小时前
SpringBoot教程(三十五)| SpringBoot集成TraceId(追踪ID)
java·spring boot·后端