【问题标题】:Why My Java Application can't see the *.jrxml?为什么我的 Java 应用程序看不到 *.jrxml?
【发布时间】:2012-11-02 23:46:03
【问题描述】:

我的项目具有以下架构:

我的模板是“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

【问题讨论】:

  • 您是否尝试将包目录添加到路径中?即`testjasper/report1.jrxml'

标签: java jasper-reports filenotfoundexception


【解决方案1】:

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

您需要使用getClass().getResource("/testjasper/report1.jrxml") 来获取对它的引用,这将返回URL

凭记忆,你应该可以给Jasper一个InputStream,这可以通过使用URL#openConnection来实现

【讨论】:

  • 根据我们的经验,提供预编译报告通常比在运行时编译更容易(更不用说更快)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2013-05-28
  • 2023-03-16
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多