Search code examples
javajarjasper-reports

Using a .jasper file present within a jar file


We are using JasperReports as our reporting tool. Earlier we were using relative paths for jasper files for filling report and it's working fine.

Now, we want to create a new jar for all compiled jrxml files. i.e a jar containing all .jasper files for our project.

Is there a way to access those .jasper files within a jar file while filling report. Because in documentation, i always see

fillReport(java.lang.String sourceFileName, java.util.Map params)

where, sourcefile is always a path on filesystem.

My question is, is there a way to access compiled .jasper files present within a jar file and fill report based on those files ?

EDIT: Essentially what is required is, i need to access .jasper files from a jar file, and then fill reports using that .jasper file and save the generated reports onto a filesystem.


Solution

  • Most APIs worth using will provide overloaded methods to accept input streams. E.G. JasperFillManager.fillReport(InputStream, Map)

    To get in InputStream, use Class.getResourceAsStream().