如何从.jar文件加载PDF?
我已经做了Swing应用程序,将包括一个文件,help.pdf
在.jar文件。当用户从JMenuItem中选择Help->User Guide
时,它应该在系统的默认PDF查看器中加载该文件。如何从.jar文件加载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,但是,当我打包成它不再适用其他人一个罐子。
我该如何解决这个问题?
的问题是File
不能说出一个JAR文件的组成部分。你需要做的是将资源从JAR文件复制到文件系统中的临时文件,并使用File
临时文件打开。
.jar文件中的文件名是区分大小写。在你的文字你写Help.pdf
但在你的代码使用help.pdf
。 Java代码中的大写/小写必须与文件的大小写匹配,即使您使用的是文件系统不区分大小写的系统。
尝试
getResource("Help.pdf");
代替(假设你的帖子文字的文件名是正确的)
我认为你必须获取的jar的位置,打开它,并从内加载PDF文件的应用。 .jar文件只是一个压缩文档,它可以用java轻松读取...
这里不是问题。请参阅斯蒂芬C的回答,了解处理这种情况的正确方法。 –
刚刚得知自己:) – Tobson
我只是搞砸了文件名,它是help.pdf – jax
然后你需要更精确地说明什么“不再有效”意思是 –