错误获取使用getServletConfig文件名(Error getting file name

2019-08-17 13:49发布

我使用JasperReport在Java Web应用程序生成报告。

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

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

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

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

所以,我想知道什么是与第一线的问题呢?

提前致谢...

Answer 1:

你给的路径应该是servlet路径。 通常情况下,servlets的路径具有正斜杠/

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



Answer 2:

Java语言(和其他人)需要\\的(双反斜杠) String S IN为了读一个单一的\ 。 你的第一种方式应该改变

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

不过,这将是更好的使用路径来检查/甚至更好的使用File#separator如下所示: 文件分割符VS在路径斜杠



文章来源: Error getting file name using getServletConfig