我使用Java、JBoss 5.1、EJB和JasperReports库来生成报告。
我们有一个带有子报表的 jrxml,子报表表达式为 $P{SUBREPORT_DIR} + "ACC0401-RebatePayableAgingClosedLoans - SR1.jasper"
其中$P{SUBREPORT_DIR}
从Java传递,文件名即“ACC0401-RebatePayableAgingClosedLoans - SR1.jasper “ 只知道要报告。
Java 不知道文件名“ACC0401-RebatePayableAgingClosedLoans - SR1.jasper”
,因此我无法使用getResourceAsStream()
.
现在,我想从 Java 代码传递以下绝对路径,该路径基本上位于 EAR 文件内。
/usr/local/jboss5.1.0.GA/server/default/deploy/OceanviewEAR.ear/OceanviewEJB.jar/com/oceanview/jasper/resource/config
我的问题是:在Java中,如何获取EAR文件的绝对路径,以便我可以将该绝对路径传递给JR报告,然后报告将是能够找到实际的.jasper文件。
最佳答案
这对我有用:使用 URL 而不是绝对路径。
InputStream url = getClass().getClassLoader().getResourceAsStream("/Report.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(url, params, ds);
关于java - EAR 文件的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344173/