NoClassDefFoundError是一个Error,严重级别高,它导致JVM加载失败,通常是由于class loader在classpath中找不到被引用的class文件引起;
ClassNotFoundException是一个异常,严重级别低(相比于Error),通常在利用反射机制加载类时找不到指定的类引起,由于是异常,是可以被catch语句扑捉然后在代码中进行处理的。
参考:http://stackoverflow.com/questions/1457863/what-is-the-difference-between-noclassdeffounderror-and-classnotfoundexception