问题描述:公司有次停电导致服务器重启,该问题就出现了。服务器上的问题我也没解决,但我是用指定文件路径方式解决的。
解决方案
第一步:
public static class BYTE_ARRAY extends Structure
{
public byte[] byValue;
public BYTE_ARRAY(int iLen) {
byValue = new byte[iLen];
}
@Override
protected List<String> getFieldOrder() {
// TODO Auto-generated method stub
return Arrays.asList("byValue");
}
}
第二步(这段代码是写在初始化摄像头代码中的)
public NativeLong initDataVideo() {
String strPathCom = "/home/czc/java/lib";
String strPathCrypto = "/home/czc/java/lib/libcrypto.so";
String strPathSsl = "/home/czc/java/lib/libssl.so";
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();
boolean loginFlag = hCNetSDK.NET_DVR_Init();
System.out.print("initSDK is " + loginFlag + "\n");
System.out.print("error code :" + hCNetSDK.NET_DVR_GetLastError() + "\n");
hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
//设置libcrypto.so所在路径
HCNetSDK.BYTE_ARRAY ptrByteArrayCrypto = new HCNetSDK.BYTE_ARRAY(256);
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);
System.arraycopy(strPathSsl.getBytes(), 0, ptrByteArraySsl.byValue, 0, strPathSsl.length());
ptrByteArraySsl.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArraySsl.getPointer());
hCNetSDK.NET_DVR_SetLogToFile(true, null, false);
lRealHandle = new NativeLong(-1);
this.m_strClientInfo = new HCNetSDK.NET_DVR_CLIENTINFO();
this.m_strClientInfo.lChannel = new NativeLong(1);
this.m_strClientInfo.lLinkMode = new NativeLong(0);
this.m_strClientInfo.hPlayWnd = null;
return lRealHandle;
}
那个路径是你服务器中的,别复制错了
总结:
到这你重启打包,再部署到服务器上就可以解决那个问题了。但问题起初是由服务器重启出现的,这个原因还是不知道。我也试了网上说的那些动态加载 .so文件方法,例如修改 /etc/profile啥啥的,都不好使。如果有人知道,可以评论告诉我,谢谢。 我也只是记录开发中遇到的问题,希望能帮到你!
大家也可以从这个网址访问海康威视的官网 https://www.hikvision.com/cn/download_more_403.html#prettyPhoto