如何从.jar文件加载PDF?

时间:2011-09-02 09:40:20

标签: java swing

我制作了一个Swing应用程序,并在.jar文件中包含一个文件help.pdf。当用户从JMenuItem中选择Help->User Guide时,它应该将文件加载到系统上的默认PDF查看器中。

我有加载PDF的代码,

private void openHelp() {
    try {
        java.net.URL helpFile = getClass().getClassLoader().getResource("help.pdf");
        File pdfFile = new File(helpFile.getPath());
        if (pdfFile.exists()) {

            if (Desktop.isDesktopSupported()) {
                Desktop.getDesktop().open(pdfFile);
            } else {
                System.out.println("Awt Desktop is not supported!");
            }

        } else {
            System.out.println("File does not exist!");
        }

        System.out.println("Done");

    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

这可以在eclipse IDE中使用,但是,当我将它打包到罐子里供其他人使用时,它不再有用。

如何解决此问题?

3 个答案:

答案 0 :(得分:1)

问题是File无法命名JAR文件的组件。您需要做的是将资源从JAR文件复制到文件系统中的临时文件中,并使用File打开临时文件。

答案 1 :(得分:0)

.jar文件中的文件名区分大小写。在您的文字中,您可以编写Help.pdf,但在代码中使用help.pdf。 Java代码中的大写/小写必须与文件的大小写匹配,即使您使用的文件系统不区分大小写的系统也是如此。

尝试

getResource("Help.pdf");

代替(假设您的发布文本中的文件名是正确的)

答案 2 :(得分:0)

我认为你必须检索jar的位置,打开它并从你的应用程序中加载pdf文件。 .jar文件只是一个压缩存档,可以用java轻松读取...