2012-11-02 85 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

相关问题