Jasper reports Jasper Java编译NoClassFound异常
尽管之前有人问过这个问题,但我不能用它们来解决这个问题。 我目前正在尝试使用jasper报告生成pdf文件。但是, 我总是遇到一个与jar依赖项相关的异常。尽管如此,我还是将以下jars文件添加到构建路径中Jasper reports Jasper Java编译NoClassFound异常,jasper-reports,noclassdeffounderror,Jasper Reports,Noclassdeffounderror,尽管之前有人问过这个问题,但我不能用它们来解决这个问题。 我目前正在尝试使用jasper报告生成pdf文件。但是, 我总是遇到一个与jar依赖项相关的异常。尽管如此,我还是将以下jars文件添加到构建路径中 jasperreports-6.0.4.jar commons-logging-1.2.jar commons-beanutils-1.9.2.jar jasperreports-javaflow-6.0.4.jar commons.digester3-3.2.jar commons-co
- jasperreports-6.0.4.jar
- commons-logging-1.2.jar
- commons-beanutils-1.9.2.jar
- jasperreports-javaflow-6.0.4.jar
- commons.digester3-3.2.jar
- commons-collections4-4.0.jar
Generating PDF...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap
at net.sf.jasperreports.engine.component.ComponentsEnvironment.<init>(ComponentsEnvironment.java:57)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getInstance(ComponentsEnvironment.java:86)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:99)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:162)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:117)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1572)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1541)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:263)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:219)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:288)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575)
at com.tutorialsdojo.jasper.HelloJasper.main(HelloJasper.java:13)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.ReferenceMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 14 more
正在生成PDF。。。
线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/commons/collections/map/ReferenceMap
位于net.sf.jasperreports.engine.component.ComponentsEnvironment.(ComponentsEnvironment.java:57)
位于net.sf.jasperreports.engine.component.ComponentsEnvironment.getInstance(ComponentsEnvironment.java:86)
位于net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:99)
位于net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:162)
位于net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:117)
位于net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1572)
位于net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1541)
在net.sf.jasperreports.engine.xml.jrmmlloader.load(jrmmlloader.java:263)上
在net.sf.jasperreports.engine.xml.jrmmlloader.load(jrmmlloader.java:219)
在net.sf.jasperreports.engine.xml.jrmmlloader.load(jrmmlloader.java:194)
在net.sf.jasperreports.engine.xml.jrmmlloader.load(jrmmlloader.java:185)上
位于net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:288)
在net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575)
位于com.tutorialsdojo.jasper.HelloJasper.main(HelloJasper.java:13)
原因:java.lang.ClassNotFoundException:org.apache.commons.collections.map.ReferenceMap
在java.net.URLClassLoader$1.run(URLClassLoader.java:372)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 14多
我设法解决了这个问题,我想分享答案,以帮助社区。可以通过pom.xml收集jar依赖项。但是,简单的方法依赖于安装的iReport(jrxml生成的版本)文件夹。Jaspersoft\iReport-x.x.x\iReport\modules\ext(取决于操作系统)位置中有一个文件夹。您可以从那里获得以下jar文件
- jasperreportsXX.jar
- commons-loggingXX.jar
- commons-beanutilsXX.jar
- commons.digesterXX.jar
- commons-collectionsXX.jar
- iTextXX.jar
- jtd-compilerXX.jar
- groovy-allXX.jar
注意。根据本教程编译jrxml对我很有用
请注意,我的所有依赖项都由maven管理您需要运行commons collections 3.2.1版。很可能是[这篇文章][1]。[1]: