- PR -

iReportで作成した「jrxml」ファイルのコンパイルエラー

1
投稿者投稿内容
マシェ
会議室デビュー日: 2005/10/12
投稿数: 13
投稿日時: 2005-10-12 10:46
初めて書き込みさせて頂きます。マシェと申します。

使用環境
Windows2000 Professional
Eclipse3.0.2(C:/eclipse)
iReport-0.5.1(C:/iReport-0.5.1)
jasperreports-1.0.2.jar(C:/jasperreports-1.0.2/dist/jasperreports-1.0.2.jar)
itext-1.3.jar(C:/j2sdk1.4.2_08/lib/itext-1.3.jar)
iTextAsian.jar(C:/j2sdk1.4.2_08/lib/iTextAsian.jar)

JasperReportsをWeb(Struts)で使って、PDFを出力しようとしています。
帳票のレイアウトはiReportで作成します。
iReportで作成した「jrxml」ファイルをiReportでコンパイルしPDFを出力することはできます。
しかし、「jrxmlファイル」をEclipseの
「C:/eclipse/SamplePDF/WEB-INF/SamplePDF.jrxml」に配置し、
Javaプログラムの「JasperCompileManager.compileReport」メソッドでコンパイル
しようとすると、「SamplePDF.java」を「C:/eclipse/」に作成しようとするので
「jasperreports.jar」が見つかりませんという感じのエラーがでます。
EclipseのビルドパスやPCの環境変数CLASSPATHは登録しています。
私は「SamplePDF.java」を「C:/eclipse/SamplePDF/」に作成するように指定できれば
解決するのではないかと考えています。
長々と申し訳ないのですが、どなたか助言お願い致します。

[ メッセージ編集済み 編集者: マシェ 編集日時 2005-10-12 10:48 ]
OKUGE
会議室デビュー日: 2005/10/17
投稿数: 1
投稿日時: 2005-10-18 13:21
私も同じところで詰まったことがあります。
原因はReportCompilerがJasperReportAPIのクラスを見つけられないことだと思います。

JasperReportのAPIドキュメントでは、ReportCompilerがデフォルトで使用するクラスパスは

  System.getProperty("java.class.path")

と書いてありますが、JRPropertiesで明示的にクラスパスを指定してあげたほうがよいでしょう。
私の場合はこんな感じ↓でJRPropertiesでクラスパスをプロパティとして登録するとうまくいきました。

  String classpath = servlet.getServletContext().getRealPath("/WEB-INF/lib/jasperreports.jar");
  JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH,classpath);
マシェ
会議室デビュー日: 2005/10/12
投稿数: 13
投稿日時: 2005-10-25 09:31
OKUGEさんに教わった方法で解決できました。
感謝です。本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)