zoukankan      html  css  js  c++  java
  • ClassNotFoundException和NoClassDefError之间的区别

    ClassNotFoundException发生在装入阶段。 
    当应用程序试图通过类的字符串名称,使用常规的三种方法装入类,但却找不到指定名称的类定义时就抛出该异常。

    NoClassDefFoundError: 当目前执行的类已经编译,但是找不到它的定义时

    也就是说你如果编译了一个类B,在类A中调用,编译完成以后,你又删除掉B,运行A的时候那么就会出现这个错误

    加载时从外存储器找不到需要的class就出现ClassNotFoundException 
    连接时从内存找不到需要的class就出现NoClassDefFoundError

    大概这样的吧,JDK API里面的解释 
    1.NoClassDefFoundError 
    当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。 
    当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。

    2.ClassNotFoundException 
    当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常: 
    * Class 类中的 forName 方法。 
    * ClassLoader 类中的 findSystemClass 方法。 
    * ClassLoader 类中的 loadClass 方法。 
    但是没有找到具有指定名称的类的定义。从 1.4 版本开始,此异常已经更新,以符合通用的异常链机制。在构造时提供并通过 getException() 方法访问的“加载类时引发的可选异常”,现在被称为原因,它可以通过 Throwable.getCause() 方法以及与上面提到的“遗留方法”来访问。

    原文:http://www.blogjava.net/leekiang/archive/2007/04/26/113810.html

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/hnucdj/p/4288369.html
Copyright © 2011-2022 走看看