Как развернуть приложение javafx с помощью sqlite?

#java #sqlite #javafx #netbeans #inno-setup

#java #sqlite #javafx #netbeans #inno-настройка #inno-setup

Вопрос:

Я работаю над приложением JavaFX, которое содержит базу данных SQLite с именем -«CSRM.db».Я использую netbeans и пытаюсь развернуть этот проект в exe-установщике с помощью среды установки inno. Мой скрипт подключения к sqlite выглядит следующим образом:

 DriverManager.getConnection("jdbc:sqlite:CSRM.db");
  

Кстати, после успешной установки приложения он не может получить доступ к — CSRM.db . Итак, как я могу развернуть приложение с помощью SQLite? Как добавить путь к файлу SQLite для развертывания?

Я добавил эти дополнительные строки для развертывания (конфигурация сборки netbeans), build.xml-

 <target name="-post-jfx-deploy">
<fx:deploy width="${javafx.run.width}" height="${javafx.run.height}"
 nativeBundles="all"
 outdir="${basedir}/${dist.dir}" outfile="${application.title}">
<fx:application name="${application.title}" mainClass="${javafx.main.class}"/>
<fx:resources>
<fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/>
 <fx:fileset dir="dist" includes="lib/*.jar"/>
</fx:resources>
<fx:info title="${application.title}" vendor="${application.vendor}"/>
</fx:deploy>
</target>
  

Комментарии:

1. CSRM.db это относительное имя файла. У вас нет контроля над текущим каталогом, когда другие пользователи запускают ваше приложение, поэтому относительное имя файла никогда не будет надежным. Если вы знаете точный абсолютный путь, по которому вы установили файл базы данных, укажите его в своем URL-адресе JDBC. В противном случае скопируйте его в известное местоположение (например, во временный файл ) и передайте этот абсолютный путь в URL.

2. @VGR Чтобы скопировать файл, вам все равно нужен его точный путь. Итак, вторая часть вашего комментария не поможет, imo.

3. Я упаковываю свои файлы в jar При первом запуске программы я проверяю наличие файлов. Если эти файлы находятся не в той же папке, что и мои jar , я извлекаю их из jar и добавляю в каталог.