我希望能够在鼠标单击时打开帮助 PDF 文件,PDF 文件包含在.jar
(并导入到 Eclipse)中。
我正在Help();
使用 mouseListener 调用(通过 windowbuilder 添加)。鼠标事件正常工作。我遇到的问题是我不确定如何访问 PDF 文件,我不断收到NullPointerException
报告。
我当前的代码是;
if (Desktop.isDesktopSupported()) {
try {
java.io.InputStream is = getClass().getResourceAsStream("/nullpdf.pdf");
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) !=null){
sb.append(line);
}
br.close();
isr.close();
is.close();
File afile =new File(line);
Desktop.getDesktop().open(afile);
}
catch (IOException ex) {
System.out.println("NO PDF READER INSTALLED");
}
}
我还尝试了一个更完整的 nullpdf 文件路径(即“package/co/uk/TabSync/nullpdf.pdf”),但具有相同的NullPointerException
.
我现在已经编辑了代码来编写一个临时文件,但它仍然无法正常工作:
public void Help() {
if (Desktop.isDesktopSupported()) {
try {
String tempFile = "nullpdf";
System.out.println(tempFile);
File temp =File.createTempFile(tempFile, "/home/geeky/Desktop/nullpdf.pdf");
Desktop.getDesktop().open(temp);
}
catch (IOException ex) {
ex.printStackTrace();
System.out.println("NO PDF READER INSTALLED");
}
}
}
我还尝试了桌面上 pdf 文件的绝对路径以及 nullpdf.pdf。如果我只使用 nullpdf.pdf,那么我会得到一个打开的 Leafpad 窗口,其中没有任何内容。如果我尝试使用我的 dekstop 的直接文件路径,我会得到以下信息:
NO PDF READER INSTALLED
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1717)
at java.io.File.createTempFile0(File.java:1738)
at java.io.File.createTempFile(File.java:1850)
我是否需要做一些事情来授予应用程序写入我的文件系统的权限(我习惯于 android dev。这通常是一个问题)。
谢谢你的帮助。