工作中对接2家公司,分别提供这2个jar包,如果共存会出现jar包冲突java.lang.NoClassDefFoundError: org/bouncycastle/crypto/digests/SM3Digest。
解决办法是重构bcprov-jdk15on-1.59.jar的包路径。
1、先下载重构包路径的一个工具jar:
https://mvnrepository.com/artifact/com.eed3si9n.jarjar/jarjar-assembly/1.13.1
2、新建rule.text文本文件,内容是你要重构的冲突的包路径名称,自行定义:
rule org.bouncycastle.** vingsoft.bouncycastle.@1
3、cmd命令行打开:
java -jar d:/jarjar-assembly-1.13.1.jar process d:/rule.txt d:/bcprov-jdk15on-1.59.jar d:/v-bcprov-jdk15on-1.59.jar
4、执行完cmd命令后生成的新的jar包替换之前的包,将程序里面原先引入的包路径换成新包里面的即可