服务器无法加载海康sdk依赖的问题
-
首先遇到的jna.jar和examples.jar无法加载的问题,尝试了很多方法无效,以下方法实测有效
-
其次是动态链接库无法加载的问题,而且是播放库,我的方法比较简单,netsdk加载出来就行了,播放库用不到,删掉引用就行了
-
最后,我尝试了不少于五种方式,只能说以下方式对我的项目有效,其他方式也对他们的项目有效
-
需求是从海康录像机上按时间下载视频文件,然后上传到ftp
以下是对我有效的方式
- 打开命令行,将第三方jar包安装在本地maven仓库(注意修改Dfile,DgroupId,DartifactId,Dversion)
mvn install:install-file -Dfile=E:\IdeaProjects\uav-platform\lib\jna.jar -DgroupId=com.sun.jna -DartifactId=jna -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=E:\IdeaProjects\uav-platform\lib\examples.jar -DgroupId=com.sun.jna -DartifactId=examples -Dversion=1.0 -Dpackaging=jar
- 在工程pom文件引入即可
<dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifactId><version>1.0</version>
</dependency>
<dependency><groupId>com.sun.jna</groupId><artifactId>examples</artifactId><version>1.0</version>
</dependency>
- 动态库加载说明
【库文件加载说明】
1. lib文件夹里面所有库文件libhcnetsdk.so、libHCCore.so、libssl.so.1.1、libcrypto.so.1.1以及HCNetSDKCom文件夹都需要加载到工程中。2. HCNetSDKCom文件夹如果和libhcnetsdk.so、libhpr.so、libHCCore文件、可执行文件不在同级目录,或者加载失败,可以调用NET_DVR_SetSDKInitCfg(enumType类型赋值为2,lpInBuff对应结构体NET_DVR_LOCAL_SDK_PATH)设置组件库所在路径。3. libcrypto.so.1.1和libssl.so.1.1是开源库,如果库文件加载失败,可以调用NET_DVR_SetSDKInitCfg(enumType类型赋值为3,lpInBuff对应libcrypto.so.1.1所在的路径字符串)、NET_DVR_SetSDKInitCfg(enumType类型赋值为4,lpInBuff对应libssl.so.1.1所在的路径字符串)指定下这些库文件加载路径。4. 如果库文件加载始终不成功,初始化失败,可以尝试将SDK所在路径添加到LD_LIBRARY_PATH环境变量中。【路径设置的Java示例代码】
//这里是库的绝对路径,请根据实际情况修改,注意改路径必须有访问权限//设置HCNetSDKCom组件库所在路径
String strPathCom = "/home/test/Desktop/JavaDemoLinux/lib";
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
struComPath.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());//设置libcrypto.so所在路径
HCNetSDK.BYTE_ARRAY ptrByteArrayCrypto = new HCNetSDK.BYTE_ARRAY(256);
String strPathCrypto = "/home/test/Desktop/JavaDemoLinux/lib/libcrypto.so.1.1";
System.arraycopy(strPathCrypto.getBytes(), 0, ptrByteArrayCrypto.byValue, 0, strPathCrypto.length());
ptrByteArrayCrypto.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(3, ptrByteArrayCrypto.getPointer());//设置libssl.so所在路径
HCNetSDK.BYTE_ARRAY ptrByteArraySsl = new HCNetSDK.BYTE_ARRAY(256);
String strPathSsl = "/home/test/Desktop/JavaDemoLinux/lib/libssl.so.1.1";
System.arraycopy(strPathSsl.getBytes(), 0, ptrByteArraySsl.byValue, 0, strPathSsl.length());
ptrByteArraySsl.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArraySsl.getPointer());【路径设置的C++示例代码】
char cryptoPath[2048] = {0};
sprintf(cryptoPath, "/home/test/Desktop/alarm_demo/libcrypto.so.1.1");
NET_DVR_SetSDKInitCfg(NET_SDK_INIT_CFG_LIBEAY_PATH, cryptoPath);char sslPath[2048] = {0};
sprintf(sslPath, "/home/test/Desktop/alarm_demo/libssl.so.1.1");
NET_DVR_SetSDKInitCfg(NET_SDK_INIT_CFG_SSLEAY_PATH, sslPath); NET_DVR_LOCAL_SDK_PATH struComPath = {0};
sprintf(struComPath.sPath, "/home/test/Desktop/alarm_demo"); //HCNetSDKCom文件夹所在的路径
NET_DVR_SetSDKInitCfg(NET_SDK_INIT_CFG_SDK_PATH, &struComPath);
参考:
- https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10
- https://blog.csdn.net/shiwenjun18/article/details/130205302
- 一些尝试过的其他方式
<!-- 加地址 -->
<dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/lib/jna.jar</systemPath>
</dependency>
<!-- 外部地址 -->
<dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/../lib/jna.jar</systemPath>
</dependency>
<!-- 项目提示无法加载外部依赖 -->
<dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${pom.basedir}/../lib/jna.jar</systemPath>
</dependency>
<!-- 在以上方式的基础上添加配置 -->
<configuration><includeTypes>jar</includeTypes><includeScope>system</includeScope>
</configuration>
相关文章:
服务器无法加载海康sdk依赖的问题
首先遇到的jna.jar和examples.jar无法加载的问题,尝试了很多方法无效,以下方法实测有效 其次是动态链接库无法加载的问题,而且是播放库,我的方法比较简单,netsdk加载出来就行了,播放库用不到,删…...
brew+nginx配置静态文件服务器
背景 一下子闲下来了,了解的我的人都知道我闲不下来。于是,我在思考COS之后,决定自己整一个本地的OSS,实现静态文件的访问。那么,首屈一指的就是我很熟的nginx。也算是个小复习吧,复习一下nginx代理静态文…...
JavaFx异常: Not on FX application thread; currentThread = Timer-0
我的定时器任务中有两个控件: FXML TextArea Display; FXML Label Label_Display; 执行下方代码会抛出:Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread Timer-0 Timer_tas…...
【Django】无法从“django.utils.encoding”导入名称“force_text”
整晚处理 Django 的导入错误。 我将把它作为提醒,希望处于相同情况的人数会减少。 原因 某些软件包版本不支持Django 4 请看下表并决定Django和Python的版本 方案 如果出现难以响应,或者更改环境麻烦,请尝试以下操作 例如出现以下错误 …...
docker-compose redis 一直启动失败
环境: centos 8.x 背景 使用docker-compose 来启动redis docker-compose.yml 如下: version: 3.3 services:redis:image: redis:latestrestart: alwayscontainer_name: redisports:- 6379:6379volumes:- ./data:/redis/data- ./redis.conf:/redis/re…...
使用GUI Guider工具在MCU上开发嵌入式GUI应用 (1) - GUI Guider简介及安装
使用GUI Guider工具在MCU上开发嵌入式GUI应用 (1) - GUI Guider简介及安装 受限于每篇文章最多只能贴9张图的限制,这个教程被拆分成了多篇文章连载发布,完整目录结构如下图x所示。后续会发布完整教程的pdf文件,敬请期待。 图x 完整教程文档…...
解决:django设置DEBUG=false时出现的问题
首先,我用的是django4.2,python3.10版本 本来,如果在settings.py中使用 DEBUG True,那么什么问题也没有,当然,这属于调试模式。 DEBUG True TEMPLATE_DEBUG DEBUGSTATIC_URL /static/ STATICFILES_DI…...
2023-08-10力扣每日一题
链接: 1289. 下降路径最小和 II 题意: 每一行选择一个数字,相邻行选择不能是同一列,求选择的数字和最小是多少 解: 每一行选择最小的次小的,下一行能加最小的(列坐标不冲突)就加…...
C#与halcon联合 缩放移动自适应图像
读取图片 //获取文件路径下的图片public HObject GetImgFromPath(string imgPath){HObject L_Img;HOperatorSet.GenEmptyObj(out L_Img);//清空图片L_Img.Dispose();//释放HOperatorSet.ReadImage(out L_Img, imgPath);//读取图片存入到l_imgreturn L_Img;}拉伸显示 //图片拉…...
推荐 4 个 yyds 的 GitHub 项目
本期推荐开源项目目录: 1. 开源的 Markdown 编辑器 2. MetaGPT 3. SuperAGI 4. 一个舒适的笔记平台 01 开源的 Markdown 编辑器 Cherry 是腾讯开源的 Markdown 编辑器,基于 Javascript具有轻量简洁、易于扩展等特点, 它可以运行在浏览器或服…...
chrome插件开发实例05-页面间通信
目录 一、页面间通信的方式 方式1: 通过消息通信...
linux安装ftp
一、安装 参考博客 https://blog.csdn.net/dafeigecsdn/article/details/126518069 rpm -qa |grep vsftpd # 查看是否安装ftp yum -y install vsftpd # 安装vsftpuseradd -d /home/lanren312 lanren312 # 指定在/home目录下创建用户 passwd lanren312 # 给用户设置密码 # 输…...
前后端分离------后端创建笔记(上)
本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…...
Java不可变集合详解
什么是不可变集合 不可变集合,英文叫 immutable 顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。 为什么要使用不可变集合 不可变对象有很多优点,包括: 当对象被不可信的…...
常见的JavaScript日常问题
在众多的编程语言中, JavaScript 给大部分的人的第一印象是人畜无害,看起来就简单的,对稍微有点儿开发经验的人来说,在网页中写个JavaScript功能也相当简单。但是当你真的得了解了JavaScript之后就会发现,它比我们想象…...
css modules的用法和在react项目中的应用
参考文章 CSS Modules 的用法 CSS Modules 的功能很单纯,只加入了局部作用域和模块依赖,可以保证某个组件的样式,不会影响到其他组件。 局部作用域 CSS的规则都是全局的,任何一个组件的样式规则,都对整个页面有效。…...
【LangChain概念】了解语言链️:第2部分
一、说明 在LangChain的帮助下创建LLM应用程序可以帮助我们轻松地链接所有内容。LangChain 是一个创新的框架,它正在彻底改变我们开发由语言模型驱动的应用程序的方式。通过结合先进的原则,LangChain正在重新定义通过传统API可以实现的极限。 在上一篇博…...
步入React前厅 - Css In React
目录 扩展学习资料 行内样式 引入样式表 CSS Module /src/components/common.module.css /src/components/listitem.module.css css管理进阶 Css管理工具 练习 扩展学习资料 资料名称 链接 css module CSS Modules 用法教程 - 阮一峰的网络日志 在React中使…...
OpenCV(三)——图像分割(二)
目录 4.边缘检测 4.1 图像梯度的概念 4.2 模板卷积和梯度图的概念 4.3 梯度算子...
28.Netty源码之缓存一致性协议
Mpsc Queue 基础知识 Mpsc 的全称是 Multi Producer Single Consumer,多生产者单消费者。Mpsc Queue 可以保证多个生产者同时访问队列是线程安全的,而且同一时刻只允许一个消费者从队列中读取数据。 Netty Reactor 线程中任务队列 taskQueue 必须满足多个…...
LSGAN原理与Keras实现:提升生成对抗网络训练稳定性
1. LSGAN基础概念与核心优势 在传统GAN训练中,判别器使用sigmoid交叉熵损失函数,这容易导致梯度消失问题。LSGAN(最小二乘生成对抗网络)通过将判别器的损失函数替换为最小二乘损失,有效改善了这一问题。我第一次尝试LS…...
C语言刷题日记 #6
C语言刷题日记 #7(2026.04.14-2026.04.21) 本周概览 进入四月的第三周,转专业申请的号角正式吹响了。4月15日至4月21日,于我个人而言是异常忙碌的一周——我咬着牙改完了个人陈述的第九版,提交了转专业申请表&#x…...
2026年创业热潮来袭,哪家口碑好的创业辅导机构更专业?
随着2026年创业热潮的来临,越来越多的人怀揣着创业梦想投身其中。然而,创业并非易事,选择一家专业的创业辅导机构至关重要。在众多机构中,商圣研习社凭借其卓越的口碑和专业的服务脱颖而出。下面我们从几个方面来分析商圣研习社为…...
CL2307OL CL2315OL带输入保护功能的原边控制恒压/恒流 PWM 驱动器
概述 CL23XX是一款适用于低功率AC / DC充电器和适配器应用的高性能PWM电源开关控制器,它可在初级侧进行检测和调节,集高精度恒定电压(CV)和恒定电流(CC)控制于一体,省去了光电耦合器和431比较器…...
抖音内容下载器深度解析:架构设计与高效批量下载实践
抖音内容下载器深度解析:架构设计与高效批量下载实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...
孤能子视角:OpenAI,再看强关系与弱关系
(在以下的与AI互动中,在EIS理论约束下,DeepSeek叫信兄,Kimi叫酷兄,我呢叫水兄。主要是观察关系场中AI角色的持续把握)(这篇太实,观点还挺刺眼的,不好说科幻,那仅供参考)我的问题:一般都玩强关系…...
如何用声谱分析技术揭秘音频的隐藏密码?
如何用声谱分析技术揭秘音频的隐藏密码? 【免费下载链接】spek Acoustic spectrum analyser 项目地址: https://gitcode.com/gh_mirrors/sp/spek 你是否曾好奇一首音乐中不同频段的能量分布?或者想了解录音中的噪声来源?传统的音频播放…...
matlab/simulink光伏储能并网交直流发电系统仿真模型,2018a版本
matlab/simulink光伏储能并网交直流发电系统仿真模型,2018a版本,2021a版本 1)光伏采用扰动观察法最大功率跟踪 2)蓄电池为双向DC-DC变换器,采用电压环和电流环控制的双闭环控制,且电流环和电压环均采用PI调…...
知识库上线后检索静默失效:一次从监控盲区到分层治理的RAG故障复盘
背景 / 现象 某电商客服知识库RAG系统上线两周后,运营反馈“很多常见问题答不上来”,但后台日志显示检索服务正常返回结果。进一步排查发现,用户高频问题如“退货流程”“优惠券使用”在知识库中存在对应文档,但模型始终无法正确引…...
3分钟快速上手:FigmaCN让Figma界面秒变中文的完整指南
3分钟快速上手:FigmaCN让Figma界面秒变中文的完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾经因为Figma的全英文界面而感到困扰?作为一名中文…...
