我正嘗試使用Firebird嵌入式服務器創建Java應用程序。火鳥和不同版本的JVM
問題是: 我希望應用程序可以同時運行Java 32位和Java 64位(不需要客戶端修改)。
運行火鳥我要補充jaybird22.dll和jaybird22_x64.dll到APP主目錄 - 到目前爲止確定,但此目錄中也應該是: ib_util.dll icudt30.dll 等 它們是不同的針對不同版本的JVM。
有沒有解決這個問題的方法?
我正嘗試使用Firebird嵌入式服務器創建Java應用程序。火鳥和不同版本的JVM
問題是: 我希望應用程序可以同時運行Java 32位和Java 64位(不需要客戶端修改)。
運行火鳥我要補充jaybird22.dll和jaybird22_x64.dll到APP主目錄 - 到目前爲止確定,但此目錄中也應該是: ib_util.dll icudt30.dll 等 它們是不同的針對不同版本的JVM。
有沒有解決這個問題的方法?
簡短的回答是:不,你不能。
您需要在應用程序的根目錄中包含嵌入Firebird的正確位數文件,並且由於Firebird嵌入式的32位和64位版本庫具有相同的名稱,因此不可能同時包含這兩個文件。
UPDATE很慚愧(如Jaybird的開發者),我只是發現它實際上是可以與嵌入在一個文件夾結構,32位和64位版本的工作,但這需要您可以在運行Java應用程序之前(例如通過.bat
,.cmd
或啓動程序)設置PATH
環境變量。
如果你把兩個文件夾,如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%
表示當前目錄。