2012-11-12 147 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)(或未被棄用的變體 - 請參閱文檔)。