1

JasperReportJavaWebアプリケーションの生成レポートに使用しています。

レポートファイルを取得するための次の行があります。

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper"));

しかし、上記の行を使用しようとすると、次のようになりFileNotFoundExceptionます。しかし、次の行を使用しようとすると、プログラムは正常に実行されます。

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("//rpts//report1.jasper"));

だから、私は最初の行の問題は何ですか?

前もって感謝します...

4

2 に答える 2

1

Java言語(およびその他)は、単一のを読み取るため\\にsに(二重バックスラッシュ)を必要とします。あなたの最初の方法はに変更する必要がありますString\

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
    .getServletContext().getRealPath("\\rpts\\report1.jasper"))

それでも、次のように使用してパスを確認する/か、さらに適切に使用File#separatorすることをお勧めします:File.separatorとSlash in Paths

于 2013-03-14T06:11:55.733 に答える
0

指定するパスはサーブレットパスである必要があります。通常、サーブレットパスにはスラッシュがあり/ます。

これを試してみてください/rpts/report1.jasper"

于 2013-03-14T06:11:36.040 に答える