同一个jar包不同版本冲突解决方法

一个项目里面同一个jar包一般不能有两个版本的 不然可能会出现jar包冲突的情况

常见报错有这三个: 
1、java.lang.ClassNotFoundException(找不到类) 
2、java.lang.NoSuchMethodError(找不到具体方法) 
3、java.lang.NoSuchFieldError(字段错误) 
4、java.lang.LinkageError(类错误 这个我没怎么见过)

解决方法有: 
1、删了旧版本的jar包,不过可能会导致一些旧代码不能用 (不推荐) 
2、合并新旧两个jar包,这个有比较高的技术要求(不会) 
3、拆开jar包,修改里面的package,然后在生成一个新的jar包(方便,简单,如果遇到需要就该jar包内容的情况,这个方法也适用)

这个文章写第三种方法

1、首先下载jarjar.jar :

官网:https://code.google.com/p/jarjar/(要翻墙)
附件:http://download.csdn.net/detail/qq_22778717/9689007
2、随便放一个地方(我放到E盘的jarjar文件夹下)

3、打开cmd,cd到E盘的jarjar文件夹,然后就运行jarjar.jar(如图1、2两个步骤) 
è¿éåå¾çæè¿°

4、打开一个txt 输入rule org.apache.http.** org.apache.http123.@1来设置转换规则,并且存到jarjar文件夹下 
(格式就这样:rule xxxx.xx.aaa.** xxxx.xx.aaa123.@1)修改的地方就是aaa那里

5、把需要转换的 xxxxx1.jar放到jarjar文件夹里面,然后输入java -jar jarjar.jar strings xxxxx1.jar,查看你要修改的jar包的包名

6、输入java -jar jarjar.jar process ./aa.txt xxxxx1.jar ./xxxxx2.jar开始转换(xxxxx1.jar是需要被修改路径的jar包 xxxxx2.jar是修改后生成jar包的名字) 
è¿éåå¾çæè¿°

 到这里 看到红线下面那个E:\jarjar> 就代表整个步骤完成了,可以去jarjar文件夹看一下你新的jar包,这个jar包导入项目的时候也不用担心说冲突了。

转自:https://blog.csdn.net/qq_22778717/article/details/53261396

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值