ClassNotFoundException:Java编译器只编译项目源代码,不会编译第三方依赖库代码。当项目运行需要使用第三方依赖库的类时,JVM会在类路径下查找该类的class文件,如果找不到该文件,则抛出ClassNotFoundException异常。因此,ClassNotFoundException通常是由于缺少或错误配置了项目依赖引起的。即:在classpath下找不到类,编译时不依赖,运行时尝试加载,是一个checked Exception。
NoClassDefFoundError:这个错误表示在编译项目源代码时可以找到源代码文件进行编译,但在运行时找不到编译文件,导致无法加载该类。通常是由于类路径(Classpath)问题导致的,例如缺少必需的JAR文件或者不正确的类路径配置。即:编译时的类在运行时找不到,通常是缺少依赖的jar包导致的,是一个错误(unchecked)。