Java常见问题汇总
编译问题
1. NoClassDefFoundError
ClassNotFoundException产生的原因:
Java支持使用Class.forName
方法来动态地加载类,任意一个类的类名如果被作为参数传递给这个方法都将导致该类被加载到JVM内存中,如果这个类在类路径中没有被找到,那么此时就会在运行时抛出ClassNotFoundException
异常。
NoClassDefFoundError产生的原因:
JVM或ClassLoader
实例尝试加载(可以通过正常的方法调用,也可能是使用new来创建新的对象)类的时候却找不到类的定义。要查找的类在编译的时候是存在的,运行的时候却找不到。这个错误往往是使用new操作符来创建一个新的对象但却找不到该对象的对应类,此时就会会导致NoClassDefFoundError
。