2012-11-12 110 views
1

我想使用Jasper进行报告,因此我将.jrmxl文件作为资源。我用这个代码读取的.jrxml:Jrxml无法通过Jar文件读取

JasperDesign jasperDesign = JasperManager.loadXmlDesign(new File(".").getAbsolutePath()+ "\\report\\reportPdf.jrxml"); 

该代码运行良好,报告也会出现。

我的问题是当我将程序导出到.jar文件时,出现错误,并且它在上面的行代码中显示“未知资源”。 所以我很担心这个错误发生的原因?

+0

您正在使用什么版本的Jasper Reports?!?我可以找到每个JavaDoc列出的每一种方法:@ @ deprecated'!无论如何,你需要获得一个'URL',为它获取'InputStream'并且调用['loadXmlDesign(InputStream)'](http://www.javadocexamples.com/net/sf/jasperreports/engine/net。 sf.jasperreports.engine.JasperManager.html#loadXmlDesign:InputStream)(或不推荐使用的变体 - 请参阅文档)。 –

+0

我使用jasper报告3.7.5,是否会影响? – htr95

+0

链接到它的JavaDocs,尽管你自己的编译应该显示警告。 –

回答

1

该报告现在将是一个嵌入式资源,不可通过File访问。

您需要获得URL,获得InputStream,并致电loadXmlDesign(InputStream)(或未被弃用的变体 - 请参阅文档)。