2015-07-15 3 views
1

У меня есть настольное приложение Java, которое я разрабатываю, у которого есть встроенная база данных Apache Derby (Link). Теперь, когда я запускаю приложение через свою IDE, все работает отлично и функционирует так, как ожидалось. Однако, когда я создаю жир банку (включая всю зависимость), когда я запустить приложение он загружается нормально, но я получаю следующее сообщение об ошибке: java.sql.SQLSyntaxErrorException: Schema «TDB» не существуетРазвертывание Java-контейнера с встроенной базой данных Apache Derby

Для Мне кажется, что схема, которую я создал, не была скопирована в мой новый файл jar, но в этом случае я не уверен, правильно ли создаю свою банку.

Что я хотел бы сделать, когда я запускаю цель пакета моего пом, он создаст новую банку со всеми включенными зависимостями, которые я мог бы эффективно передать кому-то другому, и они могли бы запускать ее как полностью функциональное настольное приложение (таким же образом я могу запустить его через мою среду IDE, без среды IDE).

Любая помощь будет оценена по весу, я уже несколько дней стучаю головой об этом.

Stu

ответ

0

Как я вижу это есть два подхода к этому:

  1. Определив файловой системы расположения файлов базы данных и убедитесь, что он включен в развертывании - это должно быть выполнимо внутри IDE
  2. Вы включаете процесс запуска, что проверить, если база данных присутствует, и если не создает схему на лету
+0

Опция два озвучивает больше ро bust вариант. Учитывая, что у меня есть весь SQL, необходимый для воссоздания моей схемы в сценариях src/main/scripts (движимый, поскольку в настоящее время он существует только как ссылка), есть способ включить сценарии, чтобы они запускались из пом в качестве части создание банки - это сделает каждую банку новой копией базы данных. Или я должен был бы достичь этого по-другому? Я действительно ничего не знаю о Maven, но знаю, возможно ли это? Спасибо – Stuie

+0

Итак, у меня это работает, когда я захватываю файлы, созданные Derby (каталог под названием «Турнир»), и вставляйте это и живую банку в тот же каталог. Когда я запускаю банку, все, кажется, работает так, как должно. Это не совсем то решение, которое я искал, но пока это не произойдет, если кто-то не придумает то, что я изначально хотел. – Stuie

Смежные вопросы