一尘不染

如何从Java打开pdf文件?

jsp

我想从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打开它?


阅读 628

收藏
2020-06-08

共1个答案

一尘不染

您需要指定绝对文件路径。假设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>

并让浏览器处理显示。

2020-06-08