最近在做使用大华sdk对接摄像头和NVR的东西,提供的sdk有使用动态类库,放到tomcat和单独去执行某一个.java文件总是加载不了动态类库,所以写这篇博客以此纪念。
(1)加载动态类库
NetSDKLib NETSDK_INSTANCE = (NetSDKLib)Native.loadLibrary(Utils.getLoadLibrary("dhnetsdk"), NetSDKLib.class);
NetSDKLib CONFIG_INSTANCE = (NetSDKLib)Native.loadLibrary(Utils.getLoadLibrary("dhconfigsdk"), NetSDKLib.class);
public static int size;
static {
size = Native.LONG_SIZE;
if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64")
|| Utils.getOsPrefix().toLowerCase().equals("win32-amd64")) {
size = 8;
} else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386")
|| Utils.getOsPrefix().toLowerCase().equals("win32-x86")) {
size = 4;
}
}
这是大华加载动态类库的方法,如需要加载动态类库,后期加上。
(2)在tomcat中配置要加载的动态类库的位置
过程:eclipse中双击tomcat找到"open launch configuration",在tomcat的Arguments 的VM Arguments中配置如下:
-Dlibpath="C:\shine\iotadmin\src\main\resources\libs\win64/"
指定动态类库的路径;
(3)单独执行某个.java文件指定动态类库
右击.java文件----》run as----->run Configruation---->
在Arguments的vm Arguments中配置
-Dlibpath="C:\shine\iotadmin\src\main\resources\libs\win64/",同样是指定动态类库的位置,就行啦。