【问题标题】:NoClassDefFoundError while export to pdf导出为 pdf 时出现 NoClassDefFoundError
【发布时间】:2015-09-07 05:48:33
【问题描述】:

在将 jasper 报告导出为 pdf 时遇到错误。这显示了 NoClassDefFoundError。我尝试了很多东西,比如添加了最近的 itextPdf jar 和 itext jar。然后我将这些文件移动到 lib 的 ext 子文件夹中。但是,我运气不好,谁能告诉我,出了什么问题?

这是我的代码:

JasperPrint jprint = (JasperPrint) JasperFillManager.fillReport(jasperFileName, param, conn);
        JasperExportManager.exportReportToPdfFile(jprint, pdfFileName); //exportReportToPdf(jprint);
        JasperViewer.viewReport(jprint);

这是我的问题:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException

【问题讨论】:

  • 确保你的类路径中有 itext jar 文件
  • 我已经添加了itext.jar
  • 我已经添加了 itext.jar - 哪个版本?您的 JR 版本似乎需要旧的 com.lowagie.** iText 风格,即 5.0.0 之前的版本。从那时起,iText 使用com.itextpdf.** 包层次结构。
  • 我正在使用 itext 5.0.6 jar 文件
  • 5.0.6 是错误的版本。 Jasper Reports 使用 2.1.7,带有 com.lowagie.** 包。

标签: java jasper-reports itext export-to-pdf


【解决方案1】:

您错过了类路径中的itext.jar。下载并添加它,这样异常就会消失。

【讨论】:

    【解决方案2】:

    至少有两种很好的方法可以解决这个问题以及可能的类似问题:

    1. 使用Maven 处理依赖关系。
    2. 将文件夹“lib”从Jasper Reports library 复制到您的项目中,并将其中的所有 jars 添加到您的构建路径中。

    【讨论】:

      【解决方案3】:

      JasperReports 库正在使用 itext 2.1.7 的自定义版本。您必须使用此版本,因为 itext 在 2.x 和 5.x 版本之间不兼容。

      【讨论】:

        猜你喜欢
        • 2012-04-18
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-14
        • 2023-03-08
        • 2018-06-16
        相关资源
        最近更新 更多