Reputation: 6181
I am using JasperReport
for generation reports in Java Web Application.
I have a following line to get report file.
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper"));
But when I try using above line I am getting FileNotFoundException
. But when I try using following line, program executes successfully.
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("//rpts//report1.jasper"));
So, I want to know what is the problem with first line?
Thanks in advance...
Upvotes: 1
Views: 440
Reputation: 85789
Java language (and others) needs \\
(double backslash) in String
s in order to read a single \
. Your first way should change to
JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
.getServletContext().getRealPath("\\rpts\\report1.jasper"))
Still, it would be better to check paths using /
or even better using File#separator
as shown here: File.separator vs Slash in Paths
Upvotes: 1
Reputation: 15456
The Path you give should be servlet path. Normally, servlets paths have forward slash /
.
Please try this /rpts/report1.jasper"
.
Upvotes: 0