简体   繁体   中英

How to read jrxml file inside the jar file?

I have a bunch of iReport source code (jrxml) locate inside the workspace with the following path:

<project>/report/<jrxml_file>

When I pack my source code into jar file. I will have this file structure directory:

<jar_file>/report/<jrxml_file>

In my source code, I have these code to validate the existence of the jrxml file:

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

When I execute this jar file through the command:

java -jar MyJar.jar

I hit an error mention that the particular jrxml_file doesn't exists.

My doubt:

  1. I am just curious to know whether am I allow to read the jrxml_file which is locate inside MyJar.jar?
  2. Do I need to extract the jrxml_file to a physical directory before I can read it?

THanks @!

If the file is on top of your jar at given path, you can use this:

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

See Java Class docs:

From there, you can read it as any other InputStream, for example using Apache IOUtils, as explained here:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM