我正在尝试使用Firebird嵌入式服务器创建Java应用程序。
问题是: 我希望应用程序能够运行Java 32bit和Java 64bit(无需客户端进行任何修改)。
要运行Firebird,我必须将jaybird22.dll和jaybird22_x64.dll添加到app主目录 - 到目前为止还可以,但是在这个目录中也应该是: ib_util.dll icudt30.dll 等等 对于不同版本的JVM,它们是不同的。
这个问题有解决办法吗?
答案 0 :(得分:0)
简短的回答是:不,你不能。
您需要为应用程序根目录中嵌入的Firebird包含正确的位数文件,并且由于嵌入的Firebird的32位和64位版本的库具有相同的名称,因此无法同时包含它们。 / p>
更新 令我感到羞耻(作为Jaybird的开发人员;),我发现它实际上可以同时使用嵌入式的32位和64位版本在一个文件夹结构中,但这要求您能够在运行Java应用程序之前设置PATH
环境变量(例如,通过.bat
,.cmd
或启动器。
如果您将文件放在两个文件夹中,例如64bit
和32bit
,您应该可以在应用程序的根目录中使用批处理文件(我假设{{1} }和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
表示当前目录。