我想从jsp打开一个PDF文件。 jsp和PDF位于同一目录中。 我使用以下代码:
if (Desktop.isSupported()) {
try {
File myFile = new File("<file name>.pdf");
Desktop.getDesktop().open(myFile);
} catch (IOException ex) {
// no application registered for PDFs
}
}
但是,我收到了找不到该文件的错误。 已验证的user.dir,它指向我的tomcat / bin。 我如何参考pdf打开它?
答案 0 :(得分:4)
您需要指定绝对文件路径。假设公共webcontent的根目录中有filename.pdf
,这应该是:
File myFile = new File(getServletContext().getRealPath("/filename.pdf"));
但是,这种结构不会像你期望的那样工作。它将在webserver机器中显示PDF文件,而不是在webbrowser机器中显示!只有当你碰巧在物理上相同的机器上同时运行webserver和webbrowser时,这才会“正常”。但是,当你将webapp发布到互联网上时,这显然不会发生在现实世界中,网络服务器和webbrowser在物理上不同的机器上运行。
相反,您只需要直接链接到PDF文件。
<a href="filename.pdf">View PDF</a>
让浏览器处理显示。
答案 1 :(得分:0)
Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler c:\\Java- Interview.pdf");
p.waitFor();