首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中以可执行文件加载Jasper报告?

问如何在java中以可执行文件加载Jasper报告?
EN

Stack Overflow用户
提问于 2015-06-20 03:00:10
回答 3查看 2.2K关注 0票数 0

我有一个问题,我用iReport为我的库存系统做报告。在我构建了一个可执行文件之前,一切似乎都很好。当我按下按钮时什么都不会发生。

这是我按钮的代码。

当我在netbeans上运行文件而不是在可执行文件中运行时,报告就会显示出来。是什么导致了这个问题。

代码语言:javascript
复制
try {
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
    String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + Connect.URL();
    conn = DriverManager.getConnection(url);
    Statement stmt = conn.createStatement();
    JasperDesign jasperDesign = JRXmlLoader.load("report1.jrxml");
    String sql = "select * from Incoming";
    JRDesignQuery newQuery = new JRDesignQuery();
    newQuery.setText(sql);
    jasperDesign.setQuery(newQuery);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, conn);
    JasperViewer.viewReport(jasperPrint);

} catch (SQLException | JRException ex) {
    Logger.getLogger(Inventory_ReportFrm.class.getName()).log(Level.SEVERE, null, ex);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-27 07:12:39

添加要加载到类路径的jrxml文件。使用编译管理器编译报表并保存到绝对位置。最好使用C文档作为绝对位置。

代码语言:javascript
复制
String documents=newJFileChooser().getFileSystemView().getDefaultDirectory().toString();

JasperCompileManager.compileReportToFile(jasperDesign,documents+"\\report1.jasper");

JasperPrint jasperPrint = JasperFillManager.fillReport(documents+"\\report1.jasper, null, conn);

JasperViewer.viewReport(jasperPrint,false);
票数 1
EN

Stack Overflow用户

发布于 2015-06-25 02:29:26

我已经解决了关于iReport/jasper报告在生成可执行文件时不打开/运行的问题。

程序(可执行文件)似乎无法将..jrxml/..jasper文件定位在其默认位置(通常是在项目文件夹中,通常带有构建和清单文件),因此可以选择将报表文件保存在硬盘的某个位置。例如。"D:/Files和Documents/Documents/report1.jrxml“

这是可行的,但不知何故不是正确的方法。大多数程序员都希望使用相对路径来完成这一任务。如果您链接到的文件位于同一个目录中。然而,我不明白为什么它不能在一个可执行文件上工作。所以我决定使用一条绝对路径,如果我决定在另一台计算机上使用它,这将是一个问题。

不管怎么说它起作用了。:)

票数 0
EN

Stack Overflow用户

发布于 2016-10-16 06:43:53

只需将您的.jrxml文件复制到dist文件夹,它将正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30949828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档