背景:新接手一个项目,有一个Java Swing 客户端和一个 SpringBoot 启动端,先需要启动 SpringBoot 启动端再启动 Java Swing 客户端, 会爆 Unable to load library 'HCNetSDK': ÕҲ»µ½ָ¶¨ 的问题,该错误表示无法加载该 dll 文件, 这个问题折腾了一到两天,试遍了网络上的各种方法,终于成功解决错误,该文章就是对这个问题以及解决方法进行总结,以便遇到问题的其他同行能够更好的解决问题
(1). Java JDK的位数需要与 .dll 文件位数相同,例如 JDK1.8 是 x64, 那么 .dll 也必须是 x64 位
(2). 使用绝对路径,
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("E:\\lib\\HCNetSDK", HCNetSDK.class);针对这段代码可以采用绝对路径的方式
(3). .dll 文件损坏,使用 该程序将 .dll 文件拖进去, 可以检查该 .dll 存在哪些问题,我当初是出现了如下错误 对应的中文可以去翻译,这个.dll 是公司项目的 git 下拉下来的,我刚开始没有怀疑这个文件会有问题,但是最终的结果是这个文件确实可能存在问题,我在海康威视的 SDK 开放平台下重新下了官方的版本,没有使用公司项目中的 .dll (可以搜索 海康威视 HCNetSDK.dll Demo 相同博客内容了解 dll 该放置在项目中的什么位置
(4). 缺少对应的 c++ 平台, 点击该链接下载 2013 版本 ,也就是直接点击下载即可Download Visual C++ Redistributable Packages for Visual Studio 2013 from Official Microsoft Download Centgaix
(5). 如果实在不行,还可以下载 Vscode Studio 2019 版本
记得勾选 使用 C++ 的桌面开发与通用 Windows 平台开发,下一步的路径什么的最好不要动(尽管会安装在 C 盘)
(6). 还有其他方法或细节,例如将 dll 放在环境变量里,或者将 dll 放在项目的根目录下,但这些方法感觉没有什么效果,但实在不行可以试一试,加上 HCNetSDK.dll 这个关键词加上上面的内容即可
这就是大致的所有方法了