1

我正在使用JasperReportJava Web 应用程序中的生成报告。

我有以下行来获取报告文件。

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 语言(和其他语言)需要\\(双反斜杠)在Strings 中才能读取单个\. 您的第一种方式应该更改为

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

尽管如此,最好使用/甚至更好地检查路径File#separator,如下所示:File.separator vs Slash in Paths

于 2013-03-14T06:11:55.733 回答
0

您提供的路径应该是 servlet 路径。通常,servlet 路径具有正斜杠/

请试试这个/rpts/report1.jasper"

于 2013-03-14T06:11:36.040 回答