Я работаю над Java-приложением, и в программе я использую некоторые файлы, такие как изображения, локальную базу данных и файл .htm (используется как файл справки).
Я пытался сделать доступ к этим ресурсам независимым от местоположения. Итак, я сделал в пакете, который содержит мои исходные файлы, подпапку с именем resources, и я поместил туда все эти изображения и т. Д. Я получаю к ним доступ через метод .getResource (), а не по путям. Например, вот как я получаю доступ к ресурсу изображения:
lang_icon=new javax.swing.ImageIcon(getClass().getResource("/myeditor/resources/checked.gif"));
Проблема в том, что при создании файла .jar он не работает должным образом. Он успешно загружает изображения, но не может подключиться к локальной базе данных или открыть файл .htm.
Вот код, который я использую для доступа к файлу .htm (он отлично работает, когда я запускаю приложение через Netbeans )
URL helpFile= getClass().getResource("/myeditor/resources/help/help.htm");
try {
BrowserLauncher launcher = new BrowserLauncher();
launcher.openURLinBrowser(helpFile.toString());
} catch (BrowserLaunchingInitializingException ex) {
Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedOperatingSystemException ex) {
Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex);
}
и вот код, который я использую для доступа к своей локальной базе данных
URL url = getClass().getResource("/myeditor/resources/icddb");
database = new File(url.getFile());
try
{
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection("jdbc:hsqldb:file:" + database+"\\icddb", "sa", "");
Когда я пытаюсь открыть файл .htm через файл .jar, он показывает эту ошибку «У этого файла нет программы, связанной с ним для выполнения этого действия. Создайте ассоциацию в параметрах папки на панели управления». />
Когда я пытаюсь подключиться к своей локальной базе данных, появляется сообщение «Серьезно не удалось открыть базу данных».
Все идеи приветствуются!
Спасибо и извините за мой английский!