Jasper Java 编译 NoClassFound 异常

Jasper Java Compile NoClassFound Exception

尽管之前提出了问题,但我无法通过使用它们来解决问题。 我目前正在尝试通过使用 jasper report.However 生成 pdf 文件, 我总是得到与 jar 依赖项相关的异常。尽管如此,我将以下 jars 文件添加到我的构建路径中,

程序生成 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 管理