マウス クリックでヘルプ 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 (IE "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 だけを使用すると、何も表示されないリーフパッド ウィンドウが表示されます。デスクトップへの直接ファイル パスを試すと、次のようになります。
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)
アプリケーションにファイルシステムへの書き込み許可を与えるために何かをする必要がありますか?
助けてくれてありがとう。