2012-11-02 129 views
1

我的項目有以下結構: enter image description here爲什麼我的Java應用程序無法看到* .jrxml?

我的模板「report1.jrxml」,然後當我EXCUTE驗證碼:

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

+0

你嘗試加入包目錄的路徑來實現?即'testjasper/report1.jrxml' –

回答

2

Jasper報表看不到它,因爲該文件是嵌入的資源(它不存在的文件,但在JAR文件中的條目)

你需要得到它的引用通過使用getClass().getResource("/testjasper/report1.jrxml")這將返回URL

從內存中,你應該能夠碧玉一個InputStream,這可以通過使用URL#openConnection

+0

Wel,這是工作:p –

+1

根據我們的經驗,通常更容易(更不用說更快)提供預編譯報告,而不是在運行時編譯它 – MadProgrammer

相關問題