我遇到問題,我使用iReport爲我的庫存系統製作報告。一切似乎工作正常,直到我建立一個可執行文件後測試它。當我按下按鈕什麼都沒有發生。如何在java中加載可執行文件中的Jasper Report?
這裏是我的按鈕的代碼。
當我在NetBeans上運行文件但不在可執行文件中時,報告顯示出來。什麼可能導致這個問題。
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);
}
的可執行的JAR文件指向正確的主要方法?當運行它時,還要檢查jasper和驅動程序庫是否在類路徑中 – Guillermo
是的,jasper和其他庫位於lib文件夾中,因爲我在項目屬性中檢查了「依賴於副本的庫」。在Netbeans IDE上運行它時它工作正常 –