为什么我的Java应用程序看不到* .jrxml?
我的项目有以下架构:
我的模板是“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
Jasper报告无法看到它,因为该文件是嵌入式资源(它不作为文件存在,而是作为Jar文件中的条目存在)
您需要使用getClass().getResource("/testjasper/report1.jrxml")
来获取对它的引用,它将返回一个URL
。
从内存中,你应该可以使用Jasper一个InputStream
,这可以通过使用URL#openConnection
来实现
- 如何用西里尔文路径阅读文件
- 尽管chmod 777,java.io.FileNotFoundException(权限被拒绝)
- 在java中加载freemarker模板时出现FileNotFoundException
- 使用ExifInterface时的FileNotFoundException
- 使用File对象初始化FileInputStream时获取FileNotFoundException
- 为什么我一直得到“必须被抓或被宣布被抛出”的错误?
- 从java下载web url下载图像?
- 为什么我找不到我的档案?
- java.io.FileNotFoundException :(没有这样的文件或目录)从eclipse运行时