我已经创建了一个Swing应用程序,并将在.jar文件中包含一个文件help.pdf。当用户从JMenuItem中选择PDF时,它应该在系统的默认Help->User Guide查看器中加载该文件。
我有加载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中是有效的,但是当我将它打包到一个jar中供其他人使用时,它就不再起作用了。
如何解决此问题?
发布于 2011-09-02 17:52:29
问题是File不能命名JAR文件的组件。您需要做的是将资源从JAR文件复制到文件系统中的一个临时文件中,并使用临时文件的File打开。
发布于 2011-09-02 17:48:01
.jar文件中的文件名区分大小写。在文本中使用Help.pdf,但在代码中使用help.pdf。Java代码中的大小写必须与文件的大小写匹配,即使您使用的系统文件系统不区分大小写。
试一试
getResource("Help.pdf");相反(假设您的帖子文本中的文件名是正确的)
发布于 2011-09-02 17:51:10
我认为您必须检索jar的位置,打开它并从应用程序中加载pdf文件。.jar文件只是一个压缩的归档文件,可以很容易地用java读取...
https://stackoverflow.com/questions/7281660
复制相似问题