为什么我的Java应用程序看不到* .jrxml?

时间:2012-11-02 23:46:03

标签: java jasper-reports filenotfoundexception

我的项目具有以下架构: enter image description here

我的模板是“report1.jrxml”,然后当我执行此代码时:

  TableModel model = (TableModel) masterTable.getModel();    
  JRTableModelDataSource data = new JRTableModelDataSource(model);
  String reportSource ="report1.jrxml";
  try {
            JasperReport jr = JasperCompileManager.compileReport(reportSource);
            JasperPrint jp = JasperFillManager.fillReport(jr, null,data);
      } catch (JRException ex) 
      {
            Logger.getLogger(master.class.getName()).log(Level.SEVERE, null, ex);
      }

我收到了这个错误(我很抱歉使用法语,但这是可以理解的:p):

Grave: null
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: report1.jrxml (Le fichier spécifié est introuvable)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
    at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:171)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:448)
    at testjasper.master.jButton1ActionPerformed(master.java:319)
    at testjasper.master.access$900(master.java:25)
    at testjasper.master$FormListener.actionPerformed(master.java:259)

Netbeans说无法找到该文件,但正如您在屏幕截图中看到的那样,它存在吗? 我怎么解决这个问题” ? 相反,问题是什么? 致以我的问候。 :P

1 个答案:

答案 0 :(得分:2)

Jasper报告无法看到它,因为该文件是嵌入式资源(它不作为文件存在,而是作为Jar文件中的条目存在)

您需要使用getClass().getResource("/testjasper/report1.jrxml")获取对URL的引用。

从记忆中,你应该可以使用InputStream成为贾斯珀,这可以通过使用URL#openConnection

来实现