Failed to introspect Class [XXX] from ClassLoader
今天做项目引入一个maven之后项目启动报错,很是无奈。碰到这种引入jar包导致的启动问题很可能是就是引入的依赖冲突,或者是版本问题,一般情况下版本问题可能性会更大。
但是我这里明显不是版本冲突问题,就是jar包冲突问题,如果是maven项目之间排除掉所冲突的依赖包即可,maven依赖问题冲突解决办法:https://blog.csdn.net/kingwinstar/article/details/106916140
但是我这里引入的是jar包,这种方式就不行了,并且仔细看下面报错的Cause By,应该是引入的jar包方法冲突,所以就需要找到具体的冲突文件和方法,进而修改jar包来解决问题。
这个我找到一个工具,将所有的jar包放到一个目录中,可以自动寻找相似的方法,并且生成一个文件。
解决方法
1、下载windows的findDuplicateClass.exe到任意文件夹,下载地址:下载地址:attahcmentName_findDuplicateClass.exe
2、双击运行exe文件
3、输入信息
双击运行exe后弹出页面,首先根据日志报错输入完整类名,如:org/jooq/TransactionListenerProvider.class
再输入查询的路径,我这里想找tomcat工程下的重复class所以输入路径:E:/repo
回车即可
接下来稍等几秒钟,就会自动分析相似的文件类,
4、查看结果
如果是直接双击exe运行输入路径后执行完毕,窗口会自动关闭,相关运行结果文件可以在输入的路径下查找,比如我这里是:
E:/repo\error.log----记录处理异常
E:/repo\duplicate_class.log----记录处理结果
如果是cmd运行,可以看到提示
最后生成出来的信息如图所示:
然后根据对应的相似文件找到冲突的包所在的位置,进而修改或者删除都可以。
一个小工具的使用,又是拯救世界的一天呢!~