ClassNotfoundException与NoClassDeFoundeEror

首先,NoClassDefFoundErorr是一个链接错误。

java有8个链接错误:

ClassCircularityError, ClassFormatError, ExceptionInInitializerError, 

IncompatibleClassChangeError, NoClassDefFoundError,UnsatisfiedLinkError, VerifyError

链接错误的意思是链接过程出错了。

链接出错报告的是代码的问题,意思是代码有一个错误的链接。因为java是在类的层次上实现的动态链接,所以没有运行时的class对象就没有办法链接。因此这个错可以理解成没有链接目标。一个没有链接目标的类可能导致很多的问题,所以必须报错。并且它不会正确被安装。也就是说这个类将不可用。并由此引发更多的问题。所以它是一个系统error。

classnotfoundexception不是这个问题。它报告的是一个找不到的类而不是一个有问题的类。比如A.B,如果B不存在,那么:B是找不到类错;A是链接错。

这就像钱没了与人没钱是两个问题一样。

钱没了是一个事实,而你穷则是另一个事实!很诡异,但是软件的哲学性可以从此窥见一斑。

你可能感兴趣的:(ClassNotfoundException与NoClassDeFoundeEror)