1

我正在使用JavaJBoss 5.1EJBJasperReports库来生成报告。

我们有一个带有子报表的 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文件。

4

1 回答 1

0

这对我有用:使用 URL 而不是绝对路径。

InputStream url = getClass().getClassLoader().getResourceAsStream("/Report.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(url, params, ds);
于 2013-12-05T19:18:19.630 回答