java使用JNI调用DLL动态库错误

本文介绍了Java中出现的UnsatisfiedLinkError问题及其解决方法,包括使用DLL依赖查看工具查找缺失库并安装,以及调整C++ DLL编译选项来避免依赖MD运行库。

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

一、错误:java.lang.UnsatisfiedLinkError: C:\windows\system32\cardcall.dll: Can't find dependent libraries

错误原因:cardcall.dll找不到依赖库

解决方案一:在网上找一个“DLL依赖查看工具”--->使用它找出缺少的依赖库--->下载dll--->下载的dll放入system32目录下--->OK。

解决方案二:java使用C++得DLL,DLL是使用VS2010编译,在本机上测试通过,但测试人员测试时报java.lang.UnsatisfiedLinkError Can't find dependent libraries,这里说明,库得路径都是对得,不必纠缠与找不到库路径。测试同事装了VS2010后问题消失。
在没装VS的虚拟机上重现问题,解决方法是VS2010编译C++的DLL时去掉/MD选项:
修改DLL工程属性:
property:
Configuration: Active(Release) Platform Active(x64)
C/C++ -> Code Generation -> Runtime Library
将 Multi-threaded DLL (/MD)去掉,留空白
重新编译DLL,不用装VS2010测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值