упаковка и развертывание настольного Java-приложения со встроенной базой данных

Я создал простое настольное приложение, которое использует встроенную базу данных (derby) из netbeans. После добавления двух записей в таблицу внутри ide и ее повторного запуска все работает отлично. Но когда я дважды щелкаю исполняемый файл jar вне ide, отображается пустая база данных. в чем может быть причина? Я также хотел бы знать, как запустить это на клиентской машине. Я попытался добавить файлы jar и lib в папку и преобразовать их в файл rar, но я не нахожу файл jar после извлечения. Я новичок в этом и любая помощь будет оценена по достоинству. заранее спасибо


person j2me    schedule 11.01.2012    source источник


Ответы (1)


Есть две распространенные причины, по которым вы неожиданно получаете пустую базу данных:

  1. Вы говорите ';create=true' и используете относительное имя базы данных, что означает, что вы даете Derby разрешение на создание новой базы данных, если она не существует, а затем домашний каталог вашей системы Derby меняется от запуска к запуску, поэтому в конечном итоге вы каждый раз создаете новые копии базы данных в разных текущих каталогах.

  2. Вы используете другое имя пользователя при подключении к базе данных. Поскольку имя пользователя, с которым вы подключаетесь, неявно указывает схему, в которой находятся ваши таблицы, использование другого имени пользователя приводит к тому, что вы видите совершенно другой набор таблиц или, в зависимости от того, как вы на это смотрите, пустую базу данных.

Что касается банок, раров и тому подобного, важно правильно управлять своим CLASSPATH. Вам нужно иметь код Derby в вашем CLASSPATH во время выполнения. Существует множество способов сделать это, поэтому вам нужно будет очень подробно рассказать о своей ситуации, чтобы другие могли оказать вам большую помощь.

person Bryan Pendleton    schedule 11.01.2012
comment
спасибо, это был урок .. так что я могу упаковать файл db вместе с файлом jar? потому что, как вы сказали в первом случае, когда файл БД находится вместе с банкой в ​​той же папке, БД работает нормально - person j2me; 12.01.2012
comment
Да, вы можете предварительно упаковать базу данных вместе с вашим приложением. Особенности зависят от того, является ли база данных доступной только для чтения или обновляемой. Если только для чтения, начните здесь: db.apache.org/derby/ docs/10.8/devguide/cdevdvlp19700.html Если базу данных можно обновить, вам нужно, чтобы процедура установки распаковала ее в локальную папку при запуске. Список рассылки derby-user — хороший способ связаться с другими разработчиками, которые сделали то же самое или что-то подобное. - person Bryan Pendleton; 12.01.2012