我想从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打开它?
您需要指定绝对文件路径。假设filename.pdf公共网站内容的根源是,这应该这样做:
filename.pdf
File myFile = new File(getServletContext().getRealPath("/filename.pdf"));
但是,此构造无法按您期望的方式工作。它将在Web服务器计算机中显示PDF文件,而不在Web浏览器计算机中显示PDF文件!仅当您碰巧 在同一 台计算机 上同时 运行Web服务器和Web浏览器时,这才“起作用”。但是,当您将Web应用程序发布到Internet(其中Web服务器和Web浏览器在物理上不同的计算机上运行)时,这在现实世界中显然不会发生。
相反,您只需要直接链接到PDF文件即可。
<a href="filename.pdf">View PDF</a>
并让浏览器处理显示。