ClassNotFoundException 和 NoClassDefFoundError 有什么区别?
任何人都可以通过一些例子来解释..
最佳答案
找不到类:
http://docs.oracle.com/javase/7/docs/api/java/lang/ClassNotFoundException.html
无类定义:
http://docs.oracle.com/javase/7/docs/api/java/lang/NoClassDefFoundError.html
“找不到类”非常明显:一些反射机制试图通过它的名称来引用它的类,但该类不存在,所以卡布卢伊。这是很明显的。名字错了。
最隐秘的错误是“No Class Def Found”错误。当您编译代码时就会发生这种情况,一切都很好,但在运行时,编译时可用的类却不存在。或者,更狡猾的是,它就在那里,但版本错误,因此无法使用。
第一个问题指向配置错误。你只是把名字写错了。
第二个问题指向构建错误。您要么在构建路径中丢失了某些内容,要么在不同的 JVM 中运行,或者发生了类似的怪事。
“找不到类”通常很容易修复,但“没有类定义”可能会让你抓狂。如果您遇到后者,请着手证明提到的类位于类路径上,或者位于类路径上的 jar 中。通常,当我看到问题时,这种努力就能解决问题。
关于java - ClassNotFoundException 和 NoClassDefFoundError 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207772/