2012-04-05 2 views
0

Я пытаюсь сделать исполняемое JAVA-приложение со встроенной БД (derby DB), но сталкивается с некоторыми проблемами и вам нужна ваша ценная помощь.Java-приложение со встроенным DERBY DB

А именно, я использую Eclipse как среду. Я экспортирую приложение Java в файл RUNNABLE JAR, и он отлично работает на моем настольном компьютере.

Идея состоит в том, чтобы сделать значок EXE doubleclick и отправить его на другую машину, у которой нет фона/среды JAVA .... так что отправьте его другому пользователю, который просто получит exe-файл, дважды щелкнет его и заработает с этим.

БД не только читается, так как приложение вставляет данные в таблицы. Итак, он отлично работает на моей машине, но когда я отправляю один и тот же файл JAR на другой компьютер, я получаю сообщение об ошибке: «ТЕСТ-ТЕСТ» не существует Я вижу приложение, но без каких-либо данных, например, нет связи с DB. Таким образом, это бесполезно.

Даже я использую JSmooth, Install4j .... для преобразования JAR в exe-файл, я получаю ту же ошибку. Итак, сначала я должен сделать JAR-файл работающим на другой машине.

Кажется, я делаю что-то неправильно с файлами DB.

Пожалуйста, дайте мне знать, какая информация вам нужна больше с моей стороны, и дайте мне знать, как я могу это сделать.

+0

где вы храните данные db? где вы помещаете файлы данных db? – dash1e

ответ

2

Если приложение предназначено для чтения и записи данных во время его работы, оно не может быть полностью записано в JAR-файле, поскольку вы не можете поместить обновляемую базу данных Derby в файл JAR. Вам потребуется некоторая «процедура установки», возможно, некоторая логика, которую вы запускаете при первом нажатии пользователем вашего приложения, которое (а) находит подходящее местоположение для базы данных Derby на машине пользователя, (b) создает базу данных и определяет все таблицы, представления и т. д., (c) загружает любые исходные данные.

Затем, при последующих запусках приложения, он сможет повторно открыть базу данных и продолжить ее использование.

+0

Спасибо за ответ, но какой смысл встроенной БД, если мне нужно создать все на компьютере пользователя? Дело в том, что пользователь вообще не должен знать о БД. Когда я помещаю это: con = DriverManager.getConnection ("jdbc: derby: myDB; create = true; user = app; password = app"); ошибка, я получаю:. Table/View «ПРЕМЬЕР» не существует я не понимаю, так как каждый раз, когда приложение двойным щелчком, он проверяет, если таблица существует, и в случае, если это не так, он создает. Похоже, что он потерян в файле JAR, потому что он отлично работает от затмения. – user1314834

+0

«jdbc: derby: myDB; create = true» говорит Derby «смотрите в папку« myDB »по сравнению с текущим рабочим каталог для файлов базы данных. Если их там нет, продолжайте и спокойно создайте совершенно новую пустую базу данных ». Поэтому, учитывая поведение, которое вы видите, кажется, что ваше приложение получает новый временный рабочий каталог каждый раз, когда его дважды щелкнуть. ваши данные сохраняются от запуска до запуска, вам нужно определить местоположение на диске для хранения этих данных, и вам нужно указать * это * местоположение в URL вашего соединения. –

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