Мне нужно открыть PDF-файл при нажатии JMenuItem. Я могу открыть PDF-файл, щелкнув пункт меню, если я запускаю свою программу из netbeans. Но когда я запускаю файл 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);
}
}
});
Пробовал и это, но получаю то же самое. Я могу открыть pdf из пункта меню, когда запускаю из netbeans, но не из приложения 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);
}
}
}
});
Вывод для всех system.out.println() выглядит следующим образом при запуске из netbeans для этого второго кода.
run:
F:/new/build/classes/newpkg/Documentation.pdf F:\new\build\classes\newpkg\Documentation.pdf СБОРКА УСПЕШНА (общее время: 5 секунд)