Firebird和不同版本的JVM

时间:2013-06-26 11:17:48

标签: java firebird jaybird

我正在尝试使用Firebird嵌入式服务器创建Java应用程序。

问题是: 我希望应用程序能够运行Java 32bit和Java 64bit(无需客户端进行任何修改)。

要运行Firebird,我必须将jaybird22.dll和jaybird22_x64.dll添加到app主目录 - 到目前为止还可以,但是在这个目录中也应该是: ib_util.dll icudt30.dll 等等 对于不同版本的JVM,它们是不同的。

这个问题有解决办法吗?

1 个答案:

答案 0 :(得分:0)

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

您需要为应用程序根目录中嵌入的Firebird包含正确的位数文件,并且由于嵌入的Firebird的32位和64位版本的库具有相同的名称,因此无法同时包含它们。 / p>

更新 令我感到羞耻(作为Jaybird的开发人员;),我发现它实际上可以同时使用嵌入式的32位和64位版本在一个文件夹结构中,但这要求您能够在运行Java应用程序之前设置PATH环境变量(例如,通过.bat.cmd或启动器。

如果您将文件放在两个文件夹中,例如64bit32bit,您应该可以在应用程序的根目录中使用批处理文件(我假设{{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 表示当前目录。