NoClassDefFoundError:
我所遇到出现以上错误的情况,有如下三种:
1 JAR重复引入,版本不一致导至
2 打程序版本时,没有把关联类打出去(这种情况一般是)
java.lang.nosuchmethoderror
3 还有一种情况是A引用B时,B初始化失败时也会导致以上的错误出现。
以上第三种情况,我们好几个人花了一个晚上才把问题搞清楚,A类引用B类,B类读取一个**.properties
程序中写的是读取**.properties 但properites名字写的是**_zh.properties 如果环境字符集为中文时,这是没有问题的,可是偏偏有几台服务器的默认字符集是US ,当时又因为正常服务器是32 tomcat6,后者是64 tomcat7 ,再加上日志也没有打好,更本不打错误日志。。。。然后,然后,,,,一直弄了好几个小时。晕了。通宵了一个晚上,已经写不清楚了,不写了。下面是两种错语的定议:
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() 方法以及与上面提到的“遗留方法”来访问。
分享到:
相关推荐
java.lang.NoClassDefFoundError: de/javakaffee/kryoserializers/CurrencySerializer
JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 原因: MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。 解决: 在MyEclipse目录下(D:\Program Files\MyEclipse ...
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
标题 "java.lang.NoClassDefFoundError: javax/persistence/EntityListener" 提到的问题是一个常见的Java运行时异常,通常表示在类加载时找不到指定的类定义。这个错误在Java应用程序或Web应用中出现,可能是因为...
标题中的“JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决”指的是一类常见的Java运行时错误,当尝试加载一个类时,如果Java虚拟机(JVM)找不到该类的定义,就会抛出`...
NoClassDefFoundError: org/slf4j/LoggerFactory解决方案,需要添加的三个jar包都在,slf4j-api-1.5.2,slf4j-log4j12-1.5.2,log4j-1.2.12
在Java编程中,`java.lang.NoClassDefFoundError` 是一个常见的运行时错误,它发生在类加载器尝试执行一个类,但在类路径中找不到该类的定义时。在这个特定的场景中,问题聚焦于 `net.sf.ezmorph.Morpher` 类。`...
jdk升级jdk10后,原本jdk自带的 webservice一些包确实,引起的一系列错误解决方案
在Java开发过程中,我们经常会遇到`java.lang.NoClassDefFoundError`这个异常,尤其是在进行JDK版本升级时。这个错误通常表示在运行时找不到某个类的定义,即使编译时该类是可用的。在本例中,问题发生在从一个较低...
在这个特定的情况下,错误信息 "NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider" 指示的是 `org.hibernate.cache.CacheProvider` 类无法被找到。 `org.hibernate.cache.CacheProvider` 是Hibernate框架...
Java编程中的`java.lang.NoClassDefFoundError: org/jboss/logging/`是一个常见的运行时错误,通常发生在尝试执行一个类时,JVM无法找到在编译时已经存在的类定义。这个错误并不意味着类在编译期间不存在,而是表明...
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
标题 "NoClassDefFoundError: jxl/WorkbookSettings" 是一个常见的Java运行时错误,意味着在尝试执行程序时,系统无法找到某个类的定义。这个错误通常发生在类路径(ClassPath)配置不正确或者缺少了必要的库依赖时...
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.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory #### 错误概述 在给定的日志片段中,出现了一个常见的Java运行时错误:“`java.lang.NoClassDefFoundError: org/apache/commons/...
flink-hadoop-compatibility_2.12-1.7.1.jar javax.ws.rs-api-2.0.1.jar jersey-common-2.27.jar ...Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
NULL 博文链接:https://jaychang.iteye.com/blog/980159
标题中的“java.lang.NoClassDefFoundError: javax/tools/StandardJavaFile”是一个常见的Java运行时错误,它表示在类路径中找不到某个类的定义。这个错误通常发生在试图执行包含特定类的代码,但该类在运行时环境中...