我在Java Web Application中使用JasperReport
生成报告。
我有以下行来获取报告文件。
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper"));
但是当我尝试使用上面一行时,我得到FileNotFoundException
。但是当我尝试使用以下行时,程序执行成功。
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("//rpts//report1.jasper"));
所以,我想知道第一行的问题是什么?
提前致谢...
答案 0 :(得分:1)
Java语言(和其他人)在\\
中需要String
(双反斜杠)以便读取单个\
。你的第一种方式应该改为
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
.getServletContext().getRealPath("\\rpts\\report1.jasper"))
不过,最好使用/
检查路径,或者使用File#separator
更好地检查路径,如下所示:File.separator vs Slash in Paths
答案 1 :(得分:0)
您提供的路径应该是servlet路径。通常,servlet路径具有正斜杠/
。
请尝试/rpts/report1.jasper"
。