贾斯珀报告文件没有找到异常需要帮助请

问题描述:

嗨朋友正试图通过散列表传递给碧玉报告的几个参数,我得到的文件没有发现异常,但我的文件被放置在netbeans项目文件夹下,下面是我的java代码贾斯珀报告文件没有找到异常需要帮助请

try{ HashMap hmp = new HashMap(); 
     hmp.put("mytin", m_t_n); 
     hmp.put("cname", c_n_m); 
     hmp.put("invno", c_in); 
     hmp.put("ctin", c_t); 
     hmp.put("date", c_d); 
     hmp.put("time", c_m); 
     hmp.put("gtot", gt); 
     hmp.put("dis", dcn); 
     hmp.put("adj", amtn); 
     hmp.put("fin", fn_am); 

     JasperReport jrpt = null; 
     String srcd="report1.jrxml"; 
     JasperPrint jp; 
     //jrpt = JasperCompileManager.compileReport(getClass().getResource(srcd)); 
jrpt = (JasperReport)JRLoader.loadObject(new File(srcd)); 
     jp=JasperFillManager.fillReport(jrpt,hmp, DriverManager.getConnection("jdbc:mysql://localhost:3306/billing", "root", "")); 
      JasperViewer jv = new JasperViewer(jp,false); 
      jv.setFitWidthZoomRatio(); 
      jv.setVisible(true); 
} 
catch(Exception er){ 
} 

我得到的错误是

run: 
    java.io.FileNotFoundException: report1.jrxml 
    net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: report1.jrxml 

好心帮我提前解决此错误感谢

+0

存储文件的位置(与源文件的关系)?需要编译'jrxml'才能填充 – MadProgrammer 2014-10-06 05:33:21

+0

yeas jrxml存储在netbeans项目文件夹中 – 2014-10-06 06:12:34

+0

项目文件夹中的哪个位置?在src'文件夹中?在什么目录结构中? – MadProgrammer 2014-10-06 07:28:10

试试这个代码 -

try { 
      String reportSource = "resources/report1.jrxml"; 
      Map<String, Object> params = new HashMap<String, Object>(); 
      JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); 
      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource()); 
      JasperViewer.viewReport(jasperPrint, false); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
+0

资源应该是我的文件夹名称在哪里存储jrxmll文件我的权利 – 2014-10-06 05:31:30

+0

是的..在你的情况下,它可以只是'String reportSource =“report1.jrxml” ;' – 2014-10-06 05:33:19

+0

在我的情况确定我有我的项目中包含的同一文件夹中的jrxml文件,所以我认为不需要指定我的文件夹名称,而是我可以简单地给出直接文件名是好的 – 2014-10-06 05:37:51

让我们假设你的类文件,并report1.jrxml都存储在您的项目在同一封装内...

src/some/package/name/Report.java 
src/some/package/name/report1.jrxml 

然后,你应该能够使用getClass().getResource("report1.jrxml")获得URL参考资源

如果确实有效,那么你需要尝试类似getClass().getResource("/some/package/name/report1.jrxml")。如果失败了,那么文件有问题。要么,你认为这是不是也被损坏以某种方式...

一个jrxml文件是JasperReports的使用只是一个XML文件,它需要先编译才能使用它...

try{ 
    HashMap hmp = new HashMap(); 
    hmp.put("mytin", m_t_n); 
    hmp.put("cname", c_n_m); 
    hmp.put("invno", c_in); 
    hmp.put("ctin", c_t); 
    hmp.put("date", c_d); 
    hmp.put("time", c_m); 
    hmp.put("gtot", gt); 
    hmp.put("dis", dcn); 
    hmp.put("adj", amtn); 
    hmp.put("fin", fn_am); 

    JasperReport jrpt = null; 
    String srcd="report1.jrxml"; 
    JasperPrint jp; 
    jrpt = JasperCompileManager.compileReport(getClass().getResource(srcd)); 
    //jrpt = (JasperReport)JRLoader.loadObject(new File(srcd)); 
    jp=JasperFillManager.fillReport(jrpt,hmp, DriverManager.getConnection("jdbc:mysql://localhost:3306/billing", "root", "")); 
    JasperViewer jv = new JasperViewer(jp,false); 
    jv.setFitWidthZoomRatio(); 
    jv.setVisible(true); 
} catch(Exception er){ 
    er.printStackTrace(); 
}