java.lang.NoClassDefFoundError错误

jar包冲突导致的java.lang.NoClassDefFoundError错误

(本文只是描述导致NoClassDefFoundError错误的一个原因,其他原因不在文中表述。)

在eclipse使用ctrl+shift+t,输入异常的类名,查看是否有同包名,不同jar包下的多个类存在。

删除冲突的jar。


本人在实际使用中是commons-logging.jar与slf4j的jcl-over-slf4j.jar的LogFactory.java的冲突。

排查过程,首先查找到了冲突的两个包。
因为是maven项目,部分依赖关系已经排除了commons-logging.jar的依赖关系。
<exclusions>
    <exclusion>
	<groupId>commons-logging</groupId>
	<artifactId>commons-logging</artifactId>
    </exclusion>
</exclusions>

但是该jar依然存在于项目中,怀疑是依赖关系没有完全排除。

使用maven build的dependency:tree,查找输出内容中的commons-logging,查找该依赖的父级,添加排除依赖关系代码。

猜你喜欢

转载自fugmaster.iteye.com/blog/2384290