海康JAVA SDK库动态路径加载


海康JAVA SDK初始化路径默认是放在classes下面,见下:

HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK", HCNetSDK.class);

有时我们为了更加规范,不一定直接放在这个下面,而是放到某个目录中。

image

我这边就是放到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);
原文地址:https://www.cnblogs.com/huiy/p/9883419.html