场景描述:使用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目录下