Java 使用getServletConfig获取文件名时出错

Java 使用getServletConfig获取文件名时出错,java,file,servlets,jasper-reports,servletconfig,Java,File,Servlets,Jasper Reports,Servletconfig,我正在使用JasperReport在javaweb应用程序中生成报告 我有一行代码来获取报告文件 JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper")); 但当我尝试使用上述行时,我得到了FileNotFoundException。但当我尝试使用下面这行代码时,程序成功地执行了 Jasp

我正在使用
JasperReport
在javaweb应用程序中生成报告

我有一行代码来获取报告文件

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper"));
但当我尝试使用上述行时,我得到了
FileNotFoundException
。但当我尝试使用下面这行代码时,程序成功地执行了

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("//rpts//report1.jasper"));
那么,我想知道第一线有什么问题


提前感谢…

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


请尝试此
/rpts/report1.jasper“

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

请尝试此
/rpts/report1。jasper“

Java语言(和其他语言)需要
\
字符串中的
\
(双反斜杠)才能读取单个
\
。你的第一条路应该改成

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
    .getServletContext().getRealPath("\\rpts\\report1.jasper"))
不过,最好使用
/
检查路径,或者更好地使用如下所示:

Java语言(和其他语言)需要
\
字符串中的
\
(双反斜杠)才能读取单个
\
。你的第一条路应该改成

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
    .getServletContext().getRealPath("\\rpts\\report1.jasper"))
不过,最好使用
/
检查路径,或者更好地使用如下所示: