Я написал программу для друга на JavaFX. Среда разработки Intelij Idea. База данных - SQlite.
Чего я хочу добиться:
- иметь папку с программой, в которой будет файл базы данных (database.db)
- нужные библиотеки для работы программы
- запускаемый exe файл приограммы , так как пользователь привык,что все программы запускаются через этот файл
Я сделал build программы. В выходной папке после этого появилось много файлов. Из них всех я скопировал мне нужные в отдельную папку на рабочий стол, чтобы можно было jar файл обернуть в exe и потом из этого всего сделать инсталлятор (чтобы проще было устанавливать программу на другие компьютеры)
После того как я сделал инсталлятор программы, программа запускается и прекрасно работает, но база данных в программе, и база данных, которая находится в файле database.db не соотвтетствует. Такое ощущение,что файл базы данных при билде зашился в jar файл. И вся информация в программе берётся не из файла в папке программы, а из файла,который находится в jar файле. Мне такого не надо, надо чтобы был файл database.db в папке программы, который можно редактировать(например браузером DB Browser) и чтобы вся информация после этого изменилась в программе тоже.
Для того,чтобы сделать exe файл я использовал Launch4j, а для создания инсталлятора - Inno Setup
Куда нужно положить файл database.db чтобы программа брала информацию именно из него?
Это класс, в котором я прописывал путь к файлу базы данных:
public class DbConnection {
private static final String SQCONN = "jdbc:sqlite::resource:database.db";
public static Connection getConnection() throws SQLException{
String path = SQCONN;
try {
Class.forName("org.sqlite.JDBC");
return DriverManager.getConnection(path);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return null;
}
}
Сделать ли билд программы в Intelij Idea вот так?:
Или вот так?
Или вообще не нужно класть файл database.db при билде jar файла?
Структура моего проекта: