JMenuItem をクリックして PDF を開く必要があります。netbeans からプログラムを実行すると、メニュー項目をクリックして pdf を開くことができます。しかし、jarファイルから実行すると、開いていません。プロジェクトをクリーンアップしてビルドします。しかし、変化はありません。netbeans から実行すると実行されますが、jar ファイルからは実行されません。ライブラリを追加する必要がありますか。
私のコードは次のとおりです
m_aboutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Runtime rt = Runtime.getRuntime();
//System.out.println(Menubar1.getDefaultLocale());
URL link2=Menubar1.class.getResource("/newpkg/Documentation.pdf");
String link=link2.toString();
link=link.substring(6);
System.out.println(link);
System.out.println(link2);
String link3="F:/new/build/classes/newpkg/Documentation.pdf";
try {
Process proc = rt.exec("rundll32.exe url.dll,FileProtocolHandler " + link2);
} catch (IOException ex) {
Logger.getLogger(Menubar1.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
これも試してみましたが、同じ結果が得られました.netbeansから実行するとmenuitemからpdfを開くことができますが、jarアプリケーションからは開きません。
m_aboutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
URL link2=Menubar1.class.getResource("/newpkg/Documentation.pdf");
String link=link2.toString();
link=link.substring(6);
System.out.println(link);
File file=new File(link);
System.out.println(file);
try {
desktop.open(file);
} catch (IOException ex) {
Logger.getLogger(Menubar1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
この 2 番目のコードを netbeans から実行すると、すべての system.out.println() の出力は次のようになります。
run:
F:/new/build/classes/newpkg/Documentation.pdf F:\new\build\classes\newpkg\Documentation.pdf ビルド成功 (合計時間: 5 秒)