我得到
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/