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

  • 相关阅读:
    让photoshop cc 支持 webp格式
    DedeCMS文章页去img图片width和height属性
    DedeCMS提交自定义表单加入验证码功能
    php session的操作
    使用jQuery,实现完美的表单异步提交
    Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程
    BT之下拉菜单
    慕课网上的Bootstrap学习(二)
    表单控件状态(禁用状态)
    在慕课学习Bootstrap
  • 原文地址:https://www.cnblogs.com/hnucdj/p/4288369.html
Copyright © 2011-2022 走看看