如何使用JRLoader.loadObjectFromFile()生成JasperReport

时间:2018-05-08 08:57:00

标签: java jasper-reports

我试图生成一个碧玉报告。它在我的Netbeans ide中工作,但在编译之后它不起作用并且没有显示错误。阅读此Jasper report is not working after making jar file后,我将代码更改为此内容。

InputStream path = getClass().getResourceAsStream("\\my_package\\ChartOfAccounts.jasper");
HashMap param = new HashMap();
String cpname = cmpName();
String cpadd = cmpAdd();
param.put("CompanyName",cpname);
param.put("Address", cpadd);
JasperReport  jr = (JasperReport)JRLoader.loadObjectFromFile(path);
JasperPrint jp = JasperFillManager.fillReport(jr, param, conn);
JasperViewer jv = new JasperViewer (jp,false);
jv.setTitle("Chart of Accounts");
jv.setVisible(true);

但是当我使用

JasperReport  jr = (JasperReport)JRLoader.loadObjectFromFile(path);

它说我应该在那里使用字符串类型变量。我该怎么办?

1 个答案:

答案 0 :(得分:1)

根据http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/util/JRLoader.html 有几种加载对象的方法。 JRLoader.loadObjectFromFile将String作为参数,并在上面的代码中传递一个导致错误的InputStream。

根据用例,您应该考虑调用哪种方法。 如果您需要使用InputStream,则应使用JRLoader.loadObject(InputStream) 如果您需要从文件中读取(该文件位于程序外部并且不在类路径上),则应使用JRLoader.loadObjectFromFile