如何解决多版本jar包冲突问题
更新时间:2026年02月07日 09:56:16 作者:花开不识君
本文介绍了如何通过修改jar包全限定名来解决多版本jar包冲突问题,具体步骤包括:准备jarjar工具和规则文件、将工具和文件放在同一目录下、运行jarjar工具并生成新的jar包,这种方法有效地解决了由于类全限定名冲突导致的jar包不兼容问题
解决多版本jar包冲突问题
在和三方对接的过程中,我们可能会不断引入一些三方jar包
但这个时候就有可能出现一个项目需要依赖两个版本不同且功能不兼容的jar包,本文记录一种方法解决方法
修改jar全限定名
我们知道jvm加载类是通过判断类的全限定名来判断当前类是否被加载
这个导致多版本jar包不兼容的原因,那么我们就从里下手
例子
我们需要将 bcprov-jdk15on-1.65.jar 由原本的org.bouncycastle 替换为shade.bouncycastle
1、准备两个文件
- jarjar.jar
<!--自行把jar下载下来-->
<dependency>
<groupId>com.googlecode.jarjar</groupId>
<artifactId>jarjar</artifactId>
<version>1.3</version>
</dependency>
- rule.txt
rule org.bouncycastle.** shade.bouncycastle.@1
2、放到一个文件下(联同要修改的jar包)

4、运行jarjar
java -jar jarjar-1.3.jar process rule.txt bcprov-jdk15on-1.65.jar shade-bcprov-jdk15on-1.65.jar
5、大公告成

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决Springboot启动报错:类文件具有错误的版本61.0,应为 52.0
这篇文章主要给大家介绍了关于解决Springboot启动报错:类文件具有错误的版本 61.0,应为 52.0的相关资料,这是查阅了网上的很多资料才解决的,分享给大家,需要的朋友可以参考下2023-01-01
关于IDEA的junit单元测试Scanner输入不可用的问题(多种原因分析)
IDEA在Junit测试中使用了Scanner,但是控制台一直转圈,无法输入,eclipse默认可用,其实解决方法很多,今天小编给大家分享多种问题原因分析及解决方法,感兴趣的朋友一起看看吧2021-06-06
Mybatis-plus解决兼容oracle批量插入的示例详解
Mybatis-Plus 是一个 MyBatis 的增强工具,提供无侵入、损耗小的 CRUD 操作,本文给大家介绍了Mybatis-plus解决兼容oracle批量插入,文中通过大家介绍的非常详细,需要的朋友可以参考下2024-11-11


最新评论