2013-06-26 1 views
1

Я пытаюсь создать приложение Java с использованием встроенного сервера Firebird.Firebird и различные версии JVM

Вопрос: Я хочу, чтобы приложение запускалось как с Java 32bit, так и с Java 64bit (без каких-либо изменений клиентом).

Для запуска Firebird я должен добавить jaybird22.dll и jaybird22_x64.dll к приложению основной каталог - до сих пор в порядке, но в этом каталоге должны быть также: ib_util.dll icudt30.dll и т.д. которые отличаются для разных версий JVM.

Есть ли какие-либо решения этой проблемы?

ответ

0

Короткий ответ: no вы не можете.

Вам необходимо включить файлы прав доступа для Firebird, встроенные в корень вашего приложения, а так как библиотеки 32-битных и 64-разрядных версий встроенного Firebird имеют одинаковые имена, их невозможно включить.

UPDATE К моему стыду (в качестве разработчика JayBird;), я только что узнал, что на самом деле можно работать как с 32 битными и 64-битными версиями встроенным в одну структуре папок, но это требует, чтобы вы можете установить переменную среды PATH перед запуском приложения Java (например, через .bat, .cmd или пусковую установку).

Если поместить файлы в две папки, например 64bit и 32bit, вы должны быть в состоянии использовать пакетный файл в корневом каталоге вашего приложения (я предполагаю, что здесь jaybird22.dll и jaybird22_x64.dll также в этих папках):

@echo off 
set PATH=%PATH%;%CD%\64bit;%CD%\32bit 
java -cp .;jaybird-full-2.2.3.jar your.package.MainClass 

FYI %CD% означает текущий каталог.