ClassNotFound 和 NoClassDefFoundError 的区别
在 Java 的开发中,这两个可能是让人比较头痛的异常了,因为出现这个异常,又得一大堆 jar 包冲突需要解决。
ClassNotFound
按照 oracle 官方的描述:Class ClassNotFoundException
Thrown when an application tries to load in a class through its string name using:
The forName method in class Class.
The findSystemClass method in class ClassLoader .
The loadClass method in class ClassLoader.
也就是当 JVM 尝试着去加载某个类的时候,会发现 classPath 下面却没有这个类,那么就会直接报错,在日常开发中出现的常见的常见原因是,两处引用了不同版本的第三方包(maven)。