免费聊天软件不收费,网站优化 保定,北京大型网站建设,网站建设客户怎么寻找首先遇到的jna.jar和examples.jar无法加载的问题#xff0c;尝试了很多方法无效#xff0c;以下方法实测有效 其次是动态链接库无法加载的问题#xff0c;而且是播放库#xff0c;我的方法比较简单#xff0c;netsdk加载出来就行了#xff0c;播放库用不到#xff0c;删… 首先遇到的jna.jar和examples.jar无法加载的问题尝试了很多方法无效以下方法实测有效 其次是动态链接库无法加载的问题而且是播放库我的方法比较简单netsdk加载出来就行了播放库用不到删掉引用就行了 最后我尝试了不少于五种方式只能说以下方式对我的项目有效其他方式也对他们的项目有效 需求是从海康录像机上按时间下载视频文件然后上传到ftp
以下是对我有效的方式
打开命令行将第三方jar包安装在本地maven仓库注意修改DfileDgroupIdDartifactIdDversion
mvn install:install-file -DfileE:\IdeaProjects\uav-platform\lib\jna.jar -DgroupIdcom.sun.jna -DartifactIdjna -Dversion1.0 -Dpackagingjar
mvn install:install-file -DfileE:\IdeaProjects\uav-platform\lib\examples.jar -DgroupIdcom.sun.jna -DartifactIdexamples -Dversion1.0 -Dpackagingjar在工程pom文件引入即可
dependencygroupIdcom.sun.jna/groupIdartifactIdjna/artifactIdversion1.0/version
/dependency
dependencygroupIdcom.sun.jna/groupIdartifactIdexamples/artifactIdversion1.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类型赋值为2lpInBuff对应结构体NET_DVR_LOCAL_SDK_PATH)设置组件库所在路径。3. libcrypto.so.1.1和libssl.so.1.1是开源库如果库文件加载失败可以调用NET_DVR_SetSDKInitCfg(enumType类型赋值为3lpInBuff对应libcrypto.so.1.1所在的路径字符串)、NET_DVR_SetSDKInitCfg(enumType类型赋值为4lpInBuff对应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?type10https://blog.csdn.net/shiwenjun18/article/details/130205302一些尝试过的其他方式
!-- 加地址 --
dependencygroupIdcom.sun.jna/groupIdartifactIdjna/artifactIdversion1.0.0/versionscopesystem/scopesystemPath${project.basedir}/lib/jna.jar/systemPath
/dependency!-- 外部地址 --
dependencygroupIdcom.sun.jna/groupIdartifactIdjna/artifactIdversion1.0.0/versionscopesystem/scopesystemPath${project.basedir}/../lib/jna.jar/systemPath
/dependency!-- 项目提示无法加载外部依赖 --
dependencygroupIdcom.sun.jna/groupIdartifactIdjna/artifactIdversion1.0.0/versionscopesystem/scopesystemPath${pom.basedir}/../lib/jna.jar/systemPath
/dependency!-- 在以上方式的基础上添加配置 --
configurationincludeTypesjar/includeTypesincludeScopesystem/includeScope
/configuration