java开发中,调用动态库(.dll文件)失败:Can't find dependent libraries

本文介绍使用VS2013封装C/C++代码为native.dll,并在Java项目中调用时遇到的问题及解决方法。提供了两种调用DLL的方式,讨论了如何定位并解决缺失依赖DLL的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景描述:使用vs2013封装c/c++代码为native.dll文件,在java项目中调用出现调用失败情况

java项目调用dll文件的两种方式

方式一:System.loadLibrary(“native”);
1 只显示名称,目录路径和后缀.dll不需要
2 动态库管理目录:把native.dll拷贝到C:\Windows\System32目录(默认管理目录)下,也可以自定义设置动态库管理目录(在环境变量path,添加目录)

方式二:System.laod(“D:/Javawork/Batch/native.dll”)
1 直接填充文件的全路径。例如:D:/Javawork/Batch/native.dll
2 路径是反斜杠(/),区别于系统路径的正斜杠()

区别:
loadLibrary方法需要设置动态库管理目录
laod方法,直接通过全路径加载,不需要理会动态库管理目录

实现以上方法调用,仍然报错:找不到依赖库
原因:在调用native.dll文件前,需要先调用其他的.dll文件
思路:找出需要的其他.dll文件件,使用工具Dependency Walker,通过Dependency Walker工具,发现缺少的.dll文件。去http://www.zhaodll.com/下载,注意32/64位。
下载的.dll文件拷贝到C:\Windows\System32目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值