当我尝试运行Java应用程序时,收到以下错误:Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
我的电脑上没有ocijdbc9.*
文件,但我在%ORACLE_HOME%\bin
中有ocijdbc10.dll
。%ORACLE_HOME%
被正确地指定了,所以我认为问题是应用程序正在搜索错误的版本(9而不是10)。
Oracle和Java Builder都是新安装的,所以问题可能出在项目首选项中?你有什么想法如何搜索的地方,错误的版本被指定?
4条答案
按热度按时间jqjz2hbq1#
你的java CLASSPATH中缺少一个文件。
您需要将OCIjar添加到类路径中。
对于我在Windows上安装的Oracle10.0.2,它位于
如果您的应用程序需要ocijdbc9,那么您必须从某处下载它并将其添加到CLASSPATH。我不知道从哪里下载,试试oracle站点
ijnw1ujt2#
一个额外的提示:如果你正在使用oci jdbc url;最好使用Oracle客户端版本的jar库。
请检查这个地址为这些图书馆:http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
例如,如果您的客户端是Oracle 10.2.0.4,那么对于java >= 1.4,最好使用此客户端的
ojdbc14.jar
,对于java <= 1.3,最好使用classes12.jar
注意,直到Oracle 11,jdbc库在每个版本中都有相同的名称,例如
ojdbc14.jar
和classes12.jar
。qgzx9mmu3#
您需要将
-Djava.library.path=YOUR_ORACLE_HOME\bin
作为运行时参数传递给JRE所以...
k7fdbhmy4#
您遇到的错误消息表明Java应用程序无法在Java库路径中找到正确版本的OracleJDBC驱动程序库(ocijdbc 9)。由于您的%ORACLE_HOME%\bin目录中有ocijdbc10.dll,因此很可能应用程序确实需要ocijdbc 9库,但找不到它。
要解决此问题,您可以尝试以下步骤:
验证Oracle JDBC驱动程序版本兼容性:确认您拥有的Oracle JDBC驱动程序版本(ocijdbc10.dll)与您要连接的Oracle数据库版本兼容。确保驱动程序版本与数据库版本匹配非常重要,这样可以避免任何潜在的兼容性问题。
更新Java库路径:将%ORACLE_HOME%\bin目录添加到Java库路径中,以便JVM可以定位ocijdbc10.dll文件。您可以通过在运行Java应用程序时使用-Djava.library. pathJVM参数指定库路径来实现这一点。例如:
bash复制代码java -Djava.library.path="%ORACLE_HOME%\bin”YourApplication将YourApplication替换为Java应用程序主类的名称。
检查项目配置:验证项目配置或生成设置,以确保它没有显式引用ocijdbc 9库或指定不正确的版本。查看任何可能设置库路径或显式引用ocijdbc 9库的特定于项目的配置文件或构建脚本。确保更新这些引用以反映正确的版本(ocijdbc 10)。
检查系统环境变量:再次检查%ORACLE_HOME%环境变量是否设置正确,并指向正确的Oracle安装目录。请确保没有冲突或不正确的环境变量,这些变量可能会干扰%ORACLE_HOME%的正确解析。