1

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

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

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

这个问题有什么解决办法吗?

4

1 回答 1

0

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

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

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

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

于 2013-06-26T11:46:08.960 回答