1

我在某个目录中有一个 Firebird 数据库文件 test.fdb,我想从 java 应用程序访问数据库。需要访问哪些库文件。

我正在使用 Jaybird JDBC 驱动程序访问嵌入式 Firebird 数据库,但出现错误

线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jaybird22_x64

我尝试下载并添加 jaybird22_x64.soSystem.setProperty("java.library.path", "/home/sk/Desktop/Jaybird/"); 文件System.load() and -Djava.library.path

jaybird 文件夹包含文件 jaybird22_x64.so 文件。

我正在使用 Ubuntu 17.04,与kernel 4.10.0-42-generic

这是我得到的例外。

java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 的 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 的 java.lang.Runtime.loadLibrary0(Runtime.java:870) 的线程“main”中的异常 java.lang.UnsatisfiedLinkError: no jaybird22_x64在 java.lang.System.loadLibrary(System.java:1122) 在 org.firebirdsql.gds.impl.jni.JniGDSImpl.initJNIBridge(JniGDSImpl.java:64) 在 org.firebirdsql.gds.impl.jni.JniGDSImpl.( JniGDSImpl.java:25) 在 org.firebirdsql.gds.impl.jni.EmbeddedGDSFactoryPlugin.getGDS(EmbeddedGDSFactoryPlugin.java:40) 在 org.firebirdsql.gds.impl.GDSFactory.getGDSForType(GDSFactory.java:275) 在 org.firebirdsql .jca.FBManagedConnectionFactory.getGDS(FBManagedConnectionFactory.java:123) 在 org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:130) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 test.TestJavaFireBird.main(TestJavaFireBird.java:33)

谁能帮忙,需要哪些库以及如何加载它们?

4

1 回答 1

1

看起来 Firebird 网站上的二进制文件在 Ubuntu 上不起作用。因此,要使用嵌入在 Ubuntu 17.04 上的 Firebird,最简单的方法是使用以下命令安装 Firebird 3.0 服务器:

sudo apt-get install firebird3.0-server

在安装中,确保输入 sysdba 帐户的密码。

这将安装并启动一个完整的 Firebird 3.0 服务器,但另一种方法是自己编译 Firebird。您可以使用停止和禁用服务器进程

sudo systemctl stop firebird3.0
sudo systemctl disable firebird3.0

接下来,您需要将自己添加到 Firebird 组以访问/tmp/firebird共享锁定文件:

sudo usermod -a -G firebird <your-username>

重新启动以访问该组。这应该不是必需的,但是如果不重新启动我的机器,我就无法获得该组。

完成这项工作后,您可以尝试通过使用FIREBIRD_LOCK环境变量指定锁定路径来使其工作,而无需将自己添加到 firebird 组中。

接下来使用 Jaybird 3.0 和 JNA 4.4.0 运行您的 Java 应用程序。如果您想使用 Jaybird 2.2,您需要自己编译 libjaybird22_x64.so。

如果你真的需要使用 Firebird 2.5,那么你可能想看看https://askubuntu.com/questions/945327/how-to-installing-firebird-on-ubuntu-16-04虽然我不确定仍将在 17.04 工作。

于 2017-12-14T12:04:52.113 回答