这里有人对jasperreport有研究么?我碰到了个棘手的问题。
我用eclipse开发,jdk版本是1.6。程序运行时出现以下bug信息:I:\workspace\Demo\Simple_Report_1190359452828_691332.java:25: 不能访问java.lang.Object
坏的类文件:C:\Program Files\Java\jre1.6.0_02\lib\rt.jar(java/lang/Object.class)
类文件是错误的版本49.0, 应当是47.0
请去掉或确信它出现在正确的classpath的子目录中.
    private JRFillParameter parameter_REPORT_LOCALE = null;
            ^
1 个错误
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
See error messages above.
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:220)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:136)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:118)
at com.Test.main(Test.java:17)一解决马上给分。

解决方案 »

  1.   

    奉上源码:
    JasperPrint jasperPrint;
    try {
    //JasperReport jasperReport = JasperCompileManager.compileReport("reports/jasperreports_demo.jrxml");       //jasperPrint = JasperFillManager.fillReport( jasperReport, new HashMap(), new JREmptyDataSource());
    JasperCompileManager.compileReportToFile(
    "d:/reports/helloWorld.jrxml",
    "d:/reports/jasperreports_demo.jasper");
    jasperPrint = JasperFillManager.fillReport(
    "d:/reports/jasperreports_demo.jasper", new HashMap(),
    new JREmptyDataSource());
    JasperExportManager.exportReportToHtmlFile(jasperPrint,
    "d:/reports/simple_report.html");
    } catch (JRException e) {
    e.printStackTrace();
    }这里比较奇怪的是,这个程序我刚开始接触jasperreport的时候运行过,没有问题。
    后来再进一步深入,尝试其他高级应用时,抛出以上错误,回头再运行这个程序也出现了相同
    的bug信息。
      

  2.   

    我觉得是jasperreport的jar包和我的java版本不匹配导致了这个问题。
    于是想找jasperreport的源代码重新编译, 没找着。
    将jar包反编译,也是问题多多。在这里一并求jasperreport的源代码。对了,我的jasperreport的版本是2.0.1。
      

  3.   

    我也刚接触这个,刚运行到JasperCompileManager.compileReportToFile( context.getRealPath("/oa/jrreport/archive/jasper/OaArchives.jrxml"));这个语句就报错。但是与你的错不一样(java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.<init>(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
    在网上找了老半天也没找到解决办法。