From: http://jroller.com/sjivan/entry/difference_between_classnotfoundexception_and_noclassdeffounderror
A ClassNotFoundException is thrown when the reported class is not found by the ClassLoader. This typically means that the class is missing from the CLASSPATH. It could also mean that the class in question is trying to be loaded from another class which was loaded in a parent classloader and hence the class from the child classloader is not visible. This is sometimes the case when working in more complex environments like an App Server (WebSphere is infamous for such classloader issues).
For example an exception (an error really since java.lang.NoClassDefFoundError is a subclass of java.lang.Error) like
java.lang.NoClassDefFoundError:
org/apache/activemq/ActiveMQConnectionFactory
does not mean that the ActiveMQConnectionFactory class is not in the CLASSPATH. Infact its quite the opposite. It means that the class ActiveMQConnectionFactory was found by the ClassLoader however when trying to load the class, it ran into an error reading the class definition. This typically happens when the class in question has static blocks or members which use a Class that's not found by the ClassLoader. So to find the culprit, view the source of the class in question (ActiveMQConnectionFactory in this case) and look for code using static blocks or static members.
On examining the code, say you find a line of code like below, make sure that the class SomeClass in in your CLASSPATH.
private static SomeClass foo = new SomeClass();
这种情况主要是编译时是有SomeClass的,运行时被删除找不到了就会报这种错误。
分享到:
相关推荐
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
在Java编程中,`java.lang.ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试通过类加载器加载指定类时,但找不到对应的字节码文件。在这个特定的问题中,`ClassNotFoundException` 引发的原因是缺少...
类加载器是 Java 语言的一个创新,也是 ...不过如果遇到了需要与类加载器进行交互的情况,而对类加载器的机制又不是很了解的话,就很容易花大量的时间去调试 ClassNotFoundException和 NoClassDefFoundError等异常。
类加载器是 Java 语言的一个创新,也是 ...不过如果遇到了需要与类加载器进行交互的情况,而对类加载器的机制又不是很了解的话,就很容易花大量的时间去调试 ClassNotFoundException和 NoClassDefFoundError等异常。
`ClassNotFoundException` 是 Java 开发过程中常见的运行时异常,通常发生在尝试加载某个类时,系统无法在指定的类路径(ClassPath)中找到对应的 `.class` 文件。本文将深入探讨 `ClassNotFoundException` 的原因、...
Java中的`ClassNotFoundException`异常通常表示在尝试加载特定类时,JVM无法找到对应的字节码文件。这个异常可能由多种原因引起,但在本场景中,它与Java 9引入的模块系统及其对Java EE API的影响密切相关。 在Java...
此错误不同于ClassNotFoundException,后者发生在尝试加载一个类而类路径(classpath)中找不到该类时;而NoClassDefFoundError则是在JVM认为类已经存在,但在实际运行时却找不到的情况下抛出的。下面,我们将深入探讨...
然而,在开发过程中,开发者经常遇到各种问题,其中一种常见的问题是`ClassNotFoundException`。这个异常通常表明Java虚拟机(JVM)在尝试加载一个类时无法找到对应的.class文件。 在标题中提到的"Eclipse plugin...
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
在Java编程语言中,`ClassNotFoundException`是一个非常常见的运行时异常,它属于`java.lang.ClassNotFoundException`,当Java虚拟机(JVM)试图动态加载一个类并无法找到对应的.class文件时,就会抛出这个异常。...
ClassNotFoundException是在编译的时候在classpath中找不到对应的类而发生的错误,而NoClassDefFoundError是在JVM在动态运行时,根据你提供的类名,在classpath中找到对应的类进行加载,但当它找不到这个类时,就...
在Java服务器页面(JSP)开发中,可能会遇到`ClassNotFoundException`异常,这通常是由于系统无法找到或加载指定的类导致的。此异常通常与类路径配置、库引用或JDBC驱动有关。以下是一些解决此类问题的有效方法: ...
在Java编程中,`java.lang.ClassNotFoundException`是一个常见的运行时异常,它表示JVM尝试加载一个类时,找不到对应的.class文件。在这个特定的错误中,我们看到的是`org.apache.commons.dbcp.BasicDataSource`,这...
"java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver" 解决方案 [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决了jsp连接 sql server 2000的问题
然而,对于初学者来说,遇到错误是常有的事,比如“java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource”。这个异常表明在运行时,系统无法找到指定的类,即Apache Commons DBCP的...
在Java编程中,`ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试加载特定类时,JVM无法找到对应类的定义。在这个特定的情景中,错误提示 "java.lang.ClassNotFoundException: ...
然而,"ClassNotFoundException"是一个常见的Java运行时异常,通常表示系统无法找到你尝试加载的类。在这个场景下,这个问题可能源于多个原因,主要涉及到项目的构建配置、依赖管理以及运行环境的差异。 首先,我们...
在Java编程中,`ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试加载类时,Java虚拟机(JVM)无法找到对应的字节码文件。在本例中,问题聚焦于 "org.jdom.input.SAXBuilder" 类,这涉及到Java的...