有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

oracle Maven包括java中的ocijdbc19。图书馆路径

TL;医生:

这就是我得到的错误:

UnsatisfiedLinkError: no ocijdbc19 in java.library.path

如何在maven项目中包含压缩的DLL文件?如何根据运行的操作系统(Windows/Linux)指定要使用的DLL库


我试图在我的maven项目中使用ocijdbc19。可以从这里下载:https://www.oracle.com/database/technologies/instant-client/downloads.html

特别是19.3.0.0版: https://download.oracle.com/otn_software/nt/instantclient/19300/instantclient-basic-windows.x64-19.3.0.0.0dbru.zip

它与此驱动程序一起使用(在Java11中运行):

<dependency>
  <groupId>com.oracle.ojdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>

没有ojdbc10版本19.6.0.0,因此我不得不降级ocijdbc19以匹配

它打包为一个zip文件,其中包含一个DLL文件。我如何将其包含在我的项目中,使其在打包时可以工作

以下是错误:

UnsatisfiedLinkError: no ocijdbc19 in java.library.path

java.library.path包括工作目录./,但这是pom所在的位置

我尝试添加JVM选项-Djava.library.path=".\lib",但随后它会完全覆盖初始值,我得到以下错误:

lib\ocijdbc19.dll: Can't find dependent libraries

另一个问题是我正在Windows机器上开发,但是这个项目将部署在linux机器上。对于不同的操作系统,ocijdbc19有不同的版本。Maven配置需要在每个包之间切换


共 (0) 个答案