I have developed an application using Java on Netbeans 8.2 IDE, in which I have used jasper report. My main jasper report has two sub reports to it.
I converted the .jar file into .exe file (added all the library files)using the Jar2Exe application.
Issue: When I run the .exe file on another system only the reports are not working..the error message display is as below..
Error msg: "net.sf.jasperreports.engine.jrexception:resource not found at : C:\project1\secure\report1 subreport.jasper"
In master report change <subreportExpression><![CDATA["report1_subreport1.jasper"]]></subreportExpression>
on:
<subreportExpression><![CDATA["secure/report1_subreport1.jasper"]]</subreportExpression>
It means that the main report will reference subreport using full package path. And make sure that you don't have SUBREPORT_DIR
parameter set.
If it still does not work then you can pass subreport to main report from Java using input stream:
InputStream subReport1 = getClass().getResourceAsStream("/secure/report1_subreport1.jasper");
parameters.put("SUBREPORT1", subReport1);
In main Jasper report you will use this expressin:
<subreportExpression class="java.io.InputStream"><![CDATA[$P{SUBREPORT1}]]></subreportExpression>
And don't forget to declare the SUBREPORT1
parameter for the main report:
<parameter name="SUBREPORT1" class="java.io.InputStream" isForPrompting="false">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>