如何在jar文件中读取jrxml文件?

时间:2012-02-24 03:44:53

标签: java jasper-reports

我有一堆iReport源代码(jrxml)位于工作区内,路径如下:

<project>/report/<jrxml_file>

当我将源代码打包到jar文件中时。我将有这个文件结构目录:

<jar_file>/report/<jrxml_file>

在我的源代码中,我有这些代码来验证jrxml文件的存在:

File file = new File("report/jrxml_file");
if (!file.exists()) {
   return false;
}

当我通过以下命令执行此jar文件时:

java -jar MyJar.jar

我提到错误提到特定的jrxml_file不存在。

我怀疑:

  1. 我只是想知道我是否允许读取位于MyJar.jar中的jrxml_file?
  2. 在我阅读之前,是否需要将jrxml_file解压缩到物理目录?
  3. 谢谢@!

1 个答案:

答案 0 :(得分:2)

如果文件在给定路径的jar顶部,您可以使用:

InputStream is = this.getClass().getResourceAsStream("/report/jrxml_file");

请参阅Java类文档:

从那里,您可以将其作为任何其他InputStream读取,例如使用Apache IOUtils,如下所述: