java - #java.lang.NoClassDefFoundError : org/apache/commons/digester/Digester

标签 java jasper-reports classpath noclassdeffounderror

我得到 java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester 错误,我被这个错误困扰了一个多月。我已经尝试了所有可用的 Digester 版本,并且我还在类路径中检查了重复的 JAR。

我通过 iReport-5.6.0 设计了报告,我使用了来自 iReport-5.6.0\ireport\modules\ext 和其他所需的 JAR。

错误日志:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:108)
    at net.sf.dynamicreports.examples.JasperMongoDBConnection.main(JasperMongoDBConnection.java:30)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

最佳答案

如果 NoClassDefFoundError 被抛出,你应该检查所需的 jar 是否正确加载到类路径中,或者你可能正在混合版本并且类名可能不同(或者它的行为)。 检查您要添加的 Digester jar 是否是所需的 jar 。

检查这些 jar 是否正确加载:

jasperreports-.jar;
jasperreports-javaflow.jar;
commons-beanutils.jar;
commons-collections.jar;
commons-logging.jar;
commons-digester.jar

查看您的 eclipse 实例下的 jasper 报告插件文件夹。在此文件夹中搜索 commons digester jar,并在您的项目中复制相同的 jar(以及列出的其他 jar)。

关于java - #java.lang.NoClassDefFoundError : org/apache/commons/digester/Digester,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28541962/

相关文章:

jasper-reports - 没有总计的交叉表

java - 如何为总条目创建序列号?

java - 如何允许 gradle 插件访问项目依赖项中的类

Java "could not find or load main class"类路径错误

java - 带有 Collections.sort 的程序

java - 乔克 : Generate sources with maven in Eclipse is not generating any file

jasper-reports - Jasper 报告列表元素产生额外的页面

java - 如何使用 Spark Core API 读取 Parquet 文件?

java - 使用自定义 ListView 时的奇怪行为

java - 类加载器如何加载 list 类路径中的类引用?