2013-06-26 61 views
1

我正嘗試使用Firebird嵌入式服務器創建Java應用程序。火鳥和不同版本的JVM

問題是: 我希望應用程序可以同時運行Java 32位和Java 64位(不需要客戶端修改)。

運行火鳥我要補充jaybird22.dll和jaybird22_x64.dll到APP主目錄 - 到目前爲止確定,但此目錄中也應該是: ib_util.dll icudt30.dll 等 它們是不同的針對不同版本的JVM。

有沒有解決這個問題的方法?

回答

0

簡短的回答是:不,你不能。

您需要在應用程序的根目錄中包含嵌入Firebird的正確位數文件,並且由於Firebird嵌入式的32位和64位版本庫具有相同的名稱,因此不可能同時包含這兩個文件。

UPDATE很慚愧(如Jaybird的開發者),我只是發現它實際上是可以與嵌入在一個文件夾結構,32位和64位版本的工作,但這需要您可以在運行Java應用程序之前(例如通過.bat.cmd或啓動程序)設置PATH環境變量。

如果你把兩個文件夾,如64bit32bit的文件,你應該能夠使用批處理文件在你的應用程序的根(我在這裏假設jaybird22.dlljaybird22_x64.dll也是在這些文件夾):

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

FYI %CD%表示當前目錄。