Jar包冲突引起的 Java中方法找不到的异常——java.lang.NoSuchMethodException
将jar包反编译后发现有该方法,通过idea查看发现jar包并没有冲突,进查找发现引入了第三方给定的jar包,其中有部分方法和现有jar包冲突,针对该问题,用jarjar-1.4.jar 可以将包名直接修改。
1、首先下载jarjar-1.4.jar包
2、将下载后的jar包和要修改包名的jar放在统一文件夹下面
3、创建rules.txt文件写入 rule com.a.** com.ljy.@1 后关闭rule.txt文件
规则如下:
//前面为替换包名 后面替换包名
//注意:原包名.** 新包名@1(中间有空格)
//配置文件中不要复制这个注释信息
4、确保三个文件在同一文件夹下面
5、执行 java -jar jarjar-1.4.jar process rule.txt fastjson-1.2.83.jar fastjson-1.2.84.jar
将包名修改并生成新的JAR包。
6、检查新生成的jar包,发现包名已被修改,映入项目中修改映入包的路径后,项目正常启动。