Ubuntu Java OpenJDK没有找到共享库

时间:2016-09-27 09:10:27

标签: java oracle ubuntu jdbc oci

我正在努力让oracle oci驱动程序在ubuntu中运行。

我有openjdk版本" 1.8.0_91"

我已经安装了sqlplus,我可以在这里的文件夹中看到它的共享库:

/usr/lib/oracle/12.1/client64/lib

起初sqlplus没有工作,并抱怨它找不到共享库。

要解决此问题,我已在/etc/ld.so.conf中创建了一个名为oracle.conf

的文件

它包含为单行:

/usr/lib/oracle/12.1/client64/lib

然后我运行sudo ldconfigsqlplus现在有效。

我的问题是Java程序仍然无法找到库。我运行命令:

java -XshowSettings:properties

我可以看到库的属性:

java.library.path = /usr/java/packages/lib/amd64
    /usr/lib/x86_64-linux-gnu/jni
    /lib/x86_64-linux-gnu
    /usr/lib/x86_64-linux-gnu
    /usr/lib/jni
    /lib
    /usr/lib

当我运行Java代码时,我收到错误:

java.lang.UnsatisfiedLinkError: no ocijdbc12 in java.library.path

当我运行ldconfig -v时,我可以在顶部看到一个部分:

 - /usr/lib/oracle/12.1/client64/lib:
               liboramysql12.so -> liboramysql12.so
               libmql1.so -> libmql1.so
               libnnz12.so -> libnnz12.so
               libons.so -> libons.so
               libipc1.so -> libipc1.so
               libocijdbc12.so -> libocijdbc12.so
               libsqlplusic.so -> libsqlplusic.so
               libsqlplus.so -> libsqlplus.so
               libheteroxa12.so -> libheteroxa12.so
               libclntsh.so.12.1 -> libclntsh.so.12.1
               libociei.so -> libociei.so
               libclntshcore.so.12.1 -> libclntshcore.so.12.1
               libocci.so.12.1 -> libocci.so.12.1

正如您所见,图书馆存在。

我认为可能需要设置环境变量LD_LIBRARY_PATH。它目前是空的。如果我设置它:

LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib

运行我的代码时出现同样的错误,java -XshowSettings:properties没有更改。

有谁知道为什么java没有拿起图书馆?

0 个答案:

没有答案