weixin_38782703
stimu1atE
采纳率50%
2019-02-19 16:38 阅读 2.8k
已采纳

有关jasperreports报错的问题java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException

80

有关jasperreport开发的问题,单元测试的时候,已经通过,可以生成没有数据的pdf文件,但是整合到项目中的时候,却会报错
java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException

下面是相关的代码

public class ATestJasperReport2 {


    public ATestJasperReport2() {

    }
    public static  void testReport(){   

        File jasperFileName = new File("f://Report/remoteReason.jasper");

        HashMap<String, Object> params = new HashMap<String, Object>();// 建立参数表
        params.put("reason_id", "原因编码"); // 设置参数值 - 暂时没用上           
        try {
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperFileName.getPath(), params , new JREmptyDataSource());
            JasperExportManager.exportReportToPdfFile(jasperPrint, "f://Report/test1.pdf");
        } catch (JRException e) {   
            System.out.println("异常");
            e.printStackTrace();
        }
    }

    public static void main(String arg[]){  
         testReport();
    }


}

下面是引用的jar包
图片说明

开发环境是 eclipse-INDIGO
java build path
图片说明

实在是搞不懂到底怎么回事,求大牛帮忙

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    weixin_38782703 stimu1atE 2019-02-21 12:06

    首先先感谢前面几位大佬提供的思路,没有他们,我还得耽误很久才能找到问题所在
    虽然没能直接帮我解决问题,但是还是提供了正确的方向,感谢 矛十七,zoyation,
    祗是辉哥哥 的帮助
    下面是我解决这个问题的具体方法
    1 首先项目是使用java8开发的,但是我原来使用的jasperReport只支持java7,所以重新找了一下lib包
    地址如下https://download.csdn.net/download/luo381821/10613230(有几个包不全)
    2 再项目中,配置引用的jar包 是在MANIFEST.MF进行的,而java build path 只是debug中使用,
    在MANIFEST.MF中的Bundle-ClassPath: ., 里 添加使用的jar包,

    再次运行的时候就成功了

    Bundle-ClassPath: .,
     lib/druid-1.0.9.jar,
     lib/log4j-1.2.17.jar,
     lib/mysql-connector-java-5.1.35-bin.jar,
     lib/junit-4.10.jar,
     lib/xSocket-2.8.15.jar,
     lib/poi-3.12-20150511.jar,
     lib/lib-report-jdk1.8/commons-beanutils-1.9.3.jar,
     lib/lib-report-jdk1.8/commons-collections-3.2.2.jar,
     lib/lib-report-jdk1.8/commons-digester-2.1.jar,
     lib/lib-report-jdk1.8/commons-logging-1.1.1.jar,
     lib/lib-report-jdk1.8/groovy-all-2.4.5.jar,
     lib/lib-report-jdk1.8/itext-2.1.7.js6.jar,
     lib/lib-report-jdk1.8/iTextAsian.jar,
     lib/lib-report-jdk1.8/jasperreports-6.7.0.jar,
     lib/lib-report-jdk1.8/jasperreports-functions-6.7.0.jar,
     lib/lib-report-jdk1.8/jcommon-1.0.23.jar,
     lib/lib-report-jdk1.8/jfreechart-1.0.12.jar,
     lib/lib-report-jdk1.8/joda-time-2.1.jar,
     lib/lib-report-jdk1.8/poi-3.15.jar,
     lib/lib-report-jdk1.8/songti.jar
    Export-Package: com.alibaba.druid,
    
    点赞 评论 复制链接分享
  • wood_jackson 矛十七 2019-02-19 16:47

    这种情况一般是没有加载到jar包,你是放到生产上吗?

    点赞 1 评论 复制链接分享
  • yangxingzou zoyation 2019-02-19 16:51

    图破了
    1.可能是jar包冲突了,报表相关jar包版本不匹配不一致
    2.可能开发运行环境配置不正确
    3.缺少jar包

    点赞 1 评论 复制链接分享
  • weixin_42456466 祗是辉哥哥 2019-02-19 16:54

    配置项不正确没有加载到这个jar包,也有可能是jar包版本不一致或者版本冲突,
    看下引用的jar包含这个类似的net/sf/jasperreports/engine/JRException,这个意思就是这个jar里面的某个类没有加载到

    点赞 1 评论 复制链接分享

相关推荐