Jasper Java 编译 NoClassFound 异常
Jasper Java Compile NoClassFound Exception
尽管之前提出了问题,但我无法通过使用它们来解决问题。
我目前正在尝试通过使用 jasper report.However 生成 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-collections4-4.0.jar
程序生成 class 未找到与集合相关的异常。我的主要目标是通过使用 jrxml 文件生成 pdf。我正在使用 iReport 5.6.0 生成 jrxml 文件。任何帮助表示赞赏。错误的堆栈跟踪如下;
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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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
我设法解决了问题,我想分享答案以帮助社区。可以通过 pom.xml 收集 jar 依赖项。但是,简单的方法依赖于 iReport(jrxml 生成版本)安装文件夹。 Jaspersoft\iReport-x.x.x\ireport\modules\ext 位置有一个文件夹(取决于 OS)。您可以从那里获取以下 jar 文件;
- jasperreportsXX.jar
- 公地-loggingXX.jar
- 公地-beanutilsXX.jar
- commons.digesterXX.jar
- 公地-collectionsXX.jar
- iTextXX.jar
- jtd-compilerXX.jar
- groovy-allXX.jar
那么所有的问题都没有了。希望这对遇到问题的其他用户有所帮助。
此致。
按照本教程编译 jrxml 对我有用 https://www.tutorialspoint.com/jasper_reports/jasper_compiling_report_design.htm
请注意,我所有的依赖项都由 maven 管理
尽管之前提出了问题,但我无法通过使用它们来解决问题。 我目前正在尝试通过使用 jasper report.However 生成 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-collections4-4.0.jar
程序生成 class 未找到与集合相关的异常。我的主要目标是通过使用 jrxml 文件生成 pdf。我正在使用 iReport 5.6.0 生成 jrxml 文件。任何帮助表示赞赏。错误的堆栈跟踪如下;
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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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
我设法解决了问题,我想分享答案以帮助社区。可以通过 pom.xml 收集 jar 依赖项。但是,简单的方法依赖于 iReport(jrxml 生成版本)安装文件夹。 Jaspersoft\iReport-x.x.x\ireport\modules\ext 位置有一个文件夹(取决于 OS)。您可以从那里获取以下 jar 文件;
- jasperreportsXX.jar
- 公地-loggingXX.jar
- 公地-beanutilsXX.jar
- commons.digesterXX.jar
- 公地-collectionsXX.jar
- iTextXX.jar
- jtd-compilerXX.jar
- groovy-allXX.jar
那么所有的问题都没有了。希望这对遇到问题的其他用户有所帮助。
此致。
按照本教程编译 jrxml 对我有用 https://www.tutorialspoint.com/jasper_reports/jasper_compiling_report_design.htm
请注意,我所有的依赖项都由 maven 管理