1

私のプロジェクトには次のアーキテクチャがあります: ここに画像の説明を入力

私のテンプレートは「report1.jrxml」で、このコードを実行すると:

  TableModel model = (TableModel) masterTable.getModel();    
  JRTableModelDataSource data = new JRTableModelDataSource(model);
  String reportSource ="report1.jrxml";
  try {
            JasperReport jr = JasperCompileManager.compileReport(reportSource);
            JasperPrint jp = JasperFillManager.fillReport(jr, null,data);
      } catch (JRException ex) 
      {
            Logger.getLogger(master.class.getName()).log(Level.SEVERE, null, ex);
      }

次のエラーが表示されます (フランス語で申し訳ありませんが、理解できます :p):

Grave: null
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: report1.jrxml (Le fichier spécifié est introuvable)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176)
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
    at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:171)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:448)
    at testjasper.master.jButton1ActionPerformed(master.java:319)
    at testjasper.master.access$900(master.java:25)
    at testjasper.master$FormListener.actionPerformed(master.java:259)

Netbeans はファイルが見つからないと言っていますが、スクリーンショットでわかるように、ファイルは存在しますか? この「問題」を解決するにはどうすればよいですか?むしろ、何が問題なのですか?よろしく。:p

4

1 に答える 1

2

ファイルが埋め込みリソースであるため、Jasper レポートはそれを表示できません (ファイルとしては存在しませんが、Jar ファイル内のエントリです)。

getClass().getResource("/testjasper/report1.jrxml")を返す which を使用して、それへの参照を取得する必要がありますURL

メモリから、Jasper a を実行できるはずですInputStream。これは、次を使用して実現できます。URL#openConnection

于 2012-11-03T00:02:23.203 に答える