主要原因:肯定是日志中报错的这个类的依赖出了问题,要么存在多个版本,要么被排除掉了。
NoClassDefFoundError:发生在运行时(需要加载对应的类不成功)
原因一:Maven依赖了不同版本【多个模块依赖的版本号不同】
原因二:引入新的Maven依赖之后,当出现冲突排除依赖的时候,排除掉了低版本的依赖。
原因三:引入新的Maven依赖 A , A 需要使用 B 依赖,B依赖被其Maven依赖,但最终被其他依赖给排掉了,排掉的版本高于A下面的依赖。
简单点就是找到排掉的这个依赖,先删掉,重新编译,有冲突的时候,排掉低版本的即可。
这里我也比较纳闷,新引入的maven包使用自己的低版本也应该是可以的呀。
在使用第三方jar时,在idea中设置库,并且在modelB中进一步封装了一些工具类Tool,在modelA中调用Tool的静态方法,并添加依赖关系,编译器能找到类Tool,但是在运行时报出NoClassDefFoundError,随后将jar添加至modelA,随后可以正常使用。
版权归原作者 程序猿进阶 所有, 如有侵权,请联系我们删除。