public class StartNVR {
public interface diaoyong extends Library{
// diaoyong INSTANCE =(diaoyong)Native.loadLibrary("C:\\Windows\\System32\\NVRCModule",diaoyong.class);//加载window中的dll文件
// diaoyong INSTANCE =(diaoyong)Native.loadLibrary("/cstor/Lib/NVRCModule",diaoyong.class);//加载linux中的.so库
diaoyong INSTANCE =(diaoyong)Native.loadLibrary("NVRCModule",diaoyong.class);
// diaoyong INSTANCE =(diaoyong)Native.loadLibrary("libNVRCModule.so",diaoyong.class);
public int NVRC_RestartNVR(int lUserID);//重新启动
public int NVRC_Startup(int nLocalPort, String c);//启动
// public static class strdev extends Structure(){
//
// }
public int NVRC_Login(String sIP, int nPort, String sUser, String sPass,
IntByReference IUserID, Structure structdev);//用户登录
public int NVRC_Logout(int IUserID);//用户登出
// public int NVRC_RestartNVR(String string);
}
在window系统中 用上面的方法调用.dll文件中的接口可以调得到 但是在linux中调用so库是调用不到 来个高手帮忙解决一下
------解决方案--------------------
loadLibrary方法是不需要写后缀的,只需要库名,是跨平台的方法...
load方法可以输入完整路径。
------解决方案--------------------
loadLibrary调不到就说明这个库找不到,这时候你可以load输入完整路径调这个库,如果能调到,说明你在启动程序时没有将库所在路径配置到Java的读取路径中。
------解决方案--------------------
在linux的启动脚本中 加上export LD_LIBRARY_PATH=/usr/local/sdk
后面路径是你存放so文件的路径