`
letitbe
  • 浏览: 244414 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ClassNotFoundException和NoClassDefError之间的区别

    博客分类:
  • java
阅读更多

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.iteye.com/topic/21141?page=1

分享到:
评论

相关推荐

    ClassNotFoundException终极解决办法

    本文将深入探讨 `ClassNotFoundException` 的原因、如何诊断问题以及多种解决方案,帮助开发者更好地理解和处理此类异常。 **原因分析:** `ClassNotFoundException` 的出现主要有以下几种情况: 1. **类路径配置...

    java.lang.ClassNotFoundException异常的解决1

    JAXB是用于XML数据绑定的一个关键库,它允许开发者将XML文档与Java对象之间进行自动转换。 因此,如果你在Java 9及更高版本中使用JAXB相关的代码,而没有正确地引入相关模块或依赖,就会遇到`...

    Eclipse plugin开发中的ClassNotFoundException问题

    然而,在开发过程中,开发者经常遇到各种问题,其中一种常见的问题是`ClassNotFoundException`。这个异常通常表明Java虚拟机(JVM)在尝试加载一个类时无法找到对应的.class文件。 在标题中提到的"Eclipse plugin...

    java 找不到指定类时发生的异常(ClassNotFoundException)

    在Java编程语言中,`ClassNotFoundException`是一个非常常见的运行时异常,它属于`java.lang....通过学习这些资源,你可以更好地了解如何避免和处理`ClassNotFoundException`,从而提高你的Java编程技能。

    JSP中ClassNotFoundException异常的解决办法.pdf

    确保路径设置正确,且每个路径之间用冒号(Unix/Linux)或分号(Windows)分隔。 最后,如果所有方法都尝试过了,但问题依然存在,那么很可能是JAR包本身存在问题。可能是版本不兼容,或者下载的JAR包损坏。此时,...

    Struts的java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource异常的解决方法

    然而,对于初学者来说,遇到错误是常有的事,比如“java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource”。这个异常表明在运行时,系统无法找到指定的类,即Apache Commons DBCP的...

    java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

    在Java编程中,`java.lang.ClassNotFoundException`是一个常见的运行时异常,它表示JVM尝试加载一个类时,找不到对应的.class文件。在这个特定的错误中,我们看到的是`org.apache.commons.dbcp.BasicDataSource`,这...

    java.lang.ClassNotFoundException: net.sf.ezmorph.MorpherRegistry

    总的来说,解决 "java.lang.ClassNotFoundException" 的关键在于正确管理和配置项目的依赖,确保所有必要的类都能在运行时被正确加载。通过仔细检查和调整上述步骤,你应该能成功地解决这个问题并继续进行JSON转换...

    java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource解决方案

    在Java编程中,`java.lang.ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试通过类加载器加载指定类时,但找不到对应的字节码文件。在这个特定的问题中,`ClassNotFoundException` 引发的原因是缺少...

    ClassNotFoundException如何解决.md

    在Java开发中,ClassNotFoundException是一种常见的运行时异常,它通常发生在Java虚拟机(JVM)尝试加载一个类时,但是...通过上述步骤和代码示例,可以有效地解决ClassNotFoundException,保证Java应用程序的正常运行。

    数据库驱动常见错误"java.lang.ClassNotFoundException:解决了jsp连接Error establishing socket.

    "java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver" 解决方案 [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决了jsp连接 sql server 2000的问题

    ClassNotFoundException解决办法.md

    解决`ClassNotFoundException`问题,首先要检查类路径和文件名是否正确,然后要检查项目构建路径和依赖配置是否无误,最后可以使用Java的反射机制尝试加载类。通过这些方法,基本可以覆盖大多数`...

    ClassNotFoundException(解决方案).md

    2. 解决ClassNotFoundException的第一步是确保类的路径和名称完全正确。如果类在某个包内,就必须确保包名与类路径匹配,类名与文件名一致,不存在拼写错误或者大小写不匹配的问题。 3. 第二种解决方案是设置正确的...

    调用百度定位SDK,出现ClassNotFoundException

    然而,"ClassNotFoundException"是一个常见的Java运行时异常,通常表示系统无法找到你尝试加载的类。在这个场景下,这个问题可能源于多个原因,主要涉及到项目的构建配置、依赖管理以及运行环境的差异。 首先,我们...

Global site tag (gtag.js) - Google Analytics