使用Jasper,我使用资源来加载报告.因此,要加载主报告,我使用如下内容:
InputStream is = getClass().getResourceAsStream("/resources/report1.jrxml");
design = JRXmlLoader.load(is);
Run Code Online (Sandbox Code Playgroud)
但是,如果report1.jrxml中有子报表,怎么说它在/resources/sub.jrxml中呢?
我在Java应用程序中使用JasperReports.
我有一个名为"reports"的包来存储生成的所有报告.这是我在我的应用程序中调用我的jasper报告的方式.
JasperDesign jd = JRXmlLoader.load("C:\\Users\\Sandaru Weerathunga\\Desktop\\Dasatha Institute\\src\\reports\\teacherPay.jrxml");
Run Code Online (Sandbox Code Playgroud)
这很有效.
我没有给出完整的路径,而是尝试:
JasperDesign jd = JRXmlLoader.load("/reports/teacherPay.jrxml");
Run Code Online (Sandbox Code Playgroud)
但这在运行程序时显示错误:
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException:
/reports/teacherPay.jrxml (The system cannot find the path specified)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
Run Code Online (Sandbox Code Playgroud)
它不适合提供JRXmlLoader的完整路径,因为如果要在其他计算机上运行此应用程序,则必须根据计算机路径更改所有编码.所以帮助我吧