海康JAVA SDK初始化路徑默認是放在classes下面,見下:
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK", HCNetSDK.class);
有時我們為了更加規范,不一定直接放在這個下面,而是放到某個目錄中。
我這邊就是放到classes下面的hikvision目錄中。
改造加載路徑,動態獲得一個絕對路徑來加載庫,見下:
import java.io.UnsupportedEncodingException; public class HCNetSDKPath { public static String DLL_PATH; static { String path = (HCNetSDKPath.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1).replace("/", "\\"); try { DLL_PATH = java.net.URLDecoder.decode(path, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }
HCNetSDK INSTANCE = (HCNetSDK) Native .loadLibrary(HCNetSDKPath.DLL_PATH + "hikvision" + File.separator + "HCNetSDK.dll", HCNetSDK.class);