如何设置嵌入式火鸟并从Java应用程序访问



我有一个firebird db文件,test.fdb在某些目录中,我想从Java应用程序访问DB。要访问的库文件是什么。

我正在使用jaybird jdbc驱动程序访问嵌入式火鸟数据库,但我会收到错误

线程" main" java.lang.unsatisfiedlinkerror中的例外:否 jaybird22_x64 in Java.library.path

我尝试下载并添加jaybird22_x64.so文件 System.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

这是我得到的例外。

线程" main" java.lang.unsatisfiedlinkerror中的例外:否 jaybird22_x64 in Java.library.path在 java.lang.classloader.loadlibrary(classLoader.java:1867)at java.lang.runtime.loadlibrary0(runtime.java:870)at java.lang.system.loadlibrary(system.java:1122)at 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)at java.sql.drivermanager.getConnection(drivermanager.java:247)at test.testjavafirebird.main(testjavafirebird.java:33)

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

看起来像Firebird网站上的二进制文件在Ubuntu上不起作用。因此,要使用嵌入在Ubuntu上的Firebird 17.04,最简单的是使用:

安装Firebird 3.0服务器
sudo apt-get install firebird3.0-server

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

这将安装并启动完整的Firebird 3.0服务器,但另一种选择是自己编译火鸟。您可以使用

停止并禁用服务器进程
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-now-to-installing-firebird-on-ubuntu-16-04,尽管我是不确定这仍然可以在17.04。

相关内容

  • 没有找到相关文章

最新更新