ClassNotFoundException :
Thrown when an application tries to load in a class through its string name using:
应用试图通过字符串名称载入一个类,载入方法如下:
- Class.forName()
- ClassLoader.findSystemClass()
- ClassLoader.loadClass()
but no definition for the class with the specified name could be found.
但是字符串名称指定的类的定义没有找到,这个时候就会抛出这个异常。
NoClassDefFoundError:
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.
如果java虚拟机或者一个ClassLoader实例尝试载入类的定义(如正常的方法调用或者用new表达式创建一个实例),但是类的定义没有找到,这个时候就会抛出这个错误。
The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
当前执行的类编译的时候可以找到类的定义,但是现在找不到了。