我制作了一个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中使用,但是,当我将它打包到罐子里供其他人使用时,它不再有用。
如何解决此问题?
答案 0 :(得分:1)
问题是File
无法命名JAR文件的组件。您需要做的是将资源从JAR文件复制到文件系统中的临时文件中,并使用File
打开临时文件。
答案 1 :(得分:0)
.jar文件中的文件名区分大小写。在您的文字中,您可以编写Help.pdf
,但在代码中使用help.pdf
。 Java代码中的大写/小写必须与文件的大小写匹配,即使您使用的文件系统不区分大小写的系统也是如此。
尝试
getResource("Help.pdf");
代替(假设您的发布文本中的文件名是正确的)
答案 2 :(得分:0)
我认为你必须检索jar的位置,打开它并从你的应用程序中加载pdf文件。 .jar文件只是一个压缩存档,可以用java轻松读取...