2013-03-14 41 views
1

我正在使用JasperReport来生成Java Web应用程序中的生成报告。使用getServletConfig获取文件名时出错

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

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

但是,当我尝试使用上面的线我得到FileNotFoundException。但是当我尝试使用下面的行时,程序成功执行。

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

所以,我想知道第一行是什么问题?

在此先感谢...

回答

0

您给出的路径应该是servlet路径。通常,servlet路径具有正斜杠/。请致电/rpts/report1.jasper"

1

为了读取单个\,Java语言(和其他)需要\\(双反斜杠)在String中。你的第一种方式要改变

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

不过,这将是更好的使用/甚至更​​好的使用File#separator路径检查如下所示:File.separator vs Slash in Paths