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

本文介绍如何在MyEclipse环境下配置Oracle数据库使用OCI方式进行连接。针对MyEclipse2016与Oracle12的组合,通过在Tomcat中正确设置Oracle路径,解决了无法通过thin方式连接的问题。

首先这篇文章只适用于windows+Myeclipse+tomcat+oracle(使用OCI连接)

在学习《韩顺平.玩转oralce》时,MyEclipse 2016 + Oracle12,不知道为何不能使用thin进行连接,尝试使用oci连接,没想到成功了。——感谢各位网友的文章。

在进行网页输入时,遇见标题的错误提示,在lib文件夹导入了ocijdbc12.dll也解决不了;查找网上文章发现是Tomcat需要增加Oracle路径,如图


加入后,调试成功。


感激:vdonkey_新浪博客  http://blog.sina.com.cn/s/blog_53a169850100a9c2.html


`java.lang.UnsatisfiedLinkError: no FCCJavaClientProxyv16064 in java.library.path` 异常表明 Java 无法在 `java.library.path` 指定的路径中找到名为 `FCCJavaClientProxyv16064.dll` 的本地库文件。尽管该 DLL 文件可能存在于系统中,但由于多种原因,JVM 无法正确加载它。以下是解决此问题的详细方法: ### 1. 确认 `java.library.path` 的值 首先,打印当前运行时的 `java.library.path` 值,以确认 JVM 实际搜索的路径: ```java System.out.println("java.library.path: " + System.getProperty("java.library.path")); ``` 该路径通常包括系统环境变量 `PATH` 中的目录。确保 `FCCJavaClientProxyv16064.dll` 所在的目录包含在其中。 ### 2. 将 DLL 文件所在目录添加到 `java.library.path` 如果 DLL 文件不在默认的 `java.library.path` 中,可以通过启动参数手动指定路径: ```bash java -Djava.library.path="C:\path\to\dll" -jar yourApp.jar ``` 其中 `C:\path\to\dll` 是 `FCCJavaClientProxyv16064.dll` 所在的目录。 ### 3. 使用 `System.load()` 替代 `System.loadLibrary()` 如果无法将 DLL 所在路径加入 `java.library.path`,可以使用绝对路径加载 DLL: ```java System.load("C:\\full\\path\\to\\FCCJavaClientProxyv16064.dll"); ``` 这种方式绕过了 `java.library.path` 的限制,适用于调试或部署时路径固定的场景。 ### 4. 检查 DLL 文件的兼容性 确保 `FCCJavaClientProxyv16064.dll` 与当前 JVM 的架构匹配(即 64 位 JVM 需要 64 位 DLL,32 位 JVM 需要 32 位 DLL)。 ### 5. 检查 DLL 文件是否依赖其他库 使用工具如 [Dependency Walker](http://www.dependencywalker.com/) 检查 `FCCJavaClientProxyv16064.dll` 是否缺少依赖项。如果存在缺失的依赖库,即使 DLL 本身存在,也无法加载。 ### 6. 设置系统环境变量 `PATH` 将 DLL 所在目录添加到系统的 `PATH` 环境变量中。这样 JVM 在查找本地库时会自动包含该路径。 ### 7. 检查文件权限和路径中的空格/特殊字符 确保 JVM 有权限访问该 DLL 文件,并且路径中没有非法字符或空格。建议使用短路径(如 `C:\dlls`)以避免问题。 ### 示例代码:加载本地库 ```java public class NativeLoader { static { // 方法一:使用 loadLibrary(需确保 dll 在 java.library.path 中) System.loadLibrary("FCCJavaClientProxyv16064"); // 方法二:使用绝对路径加载 // System.load("C:\\dlls\\FCCJavaClientProxyv16064"); } public native void someNativeMethod(); public static void main(String[] args) { new NativeLoader().someNativeMethod(); } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值