java jna 调用linux中so库有兴趣的进来瞅瞅

芥末小龙 2013-01-28 05:05:51

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库是调用不到 来个高手帮忙解决一下
...全文
603 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmsandly 2014-09-05
  • 打赏
  • 举报
回复
问题解决了么?我现在也有这个问题,不知道该把.so放在什么地方,总是提示文件不存在
phw2007 2013-02-07
  • 打赏
  • 举报
回复
我现在遇到一个问题 我不想在启动脚本中配置 希望在程序中进行配置用了 NativeLibrary.addSearchPath(libName,searchpath); 但涉及依赖的so文件就有问题了
phw2007 2013-02-07
  • 打赏
  • 举报
回复
在linux的启动脚本中 加上export LD_LIBRARY_PATH=/usr/local/sdk 后面路径是你存放so文件的路径
芥末小龙 2013-01-28
  • 打赏
  • 举报
回复
自己顶一下 再来个人啊 亲们
芥末小龙 2013-01-28
  • 打赏
  • 举报
回复
有System.load(); 但是没有Native.load()啊 只有Native.loadlibrary();这可咱办啊
芥末小龙 2013-01-28
  • 打赏
  • 举报
回复
嘻嘻 linux 不会是一会我让同事弄一下 谢谢啊
为啥呢 2013-01-28
  • 打赏
  • 举报
回复
参看你启动时所使用的命令参数帮助信息
wiu88 2013-01-28
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
芥末小龙 2013-01-28
  • 打赏
  • 举报
回复
如何把库的路径配置到java的读取路径中啊
为啥呢 2013-01-28
  • 打赏
  • 举报
回复
loadLibrary调不到就说明这个库找不到,这时候你可以load输入完整路径调这个库,如果能调到,说明你在启动程序时没有将库所在路径配置到Java的读取路径中。
芥末小龙 2013-01-28
  • 打赏
  • 举报
回复
diaoyong INSTANCE =(diaoyong)Native.loadLibrary("NVRCModule",diaoyong.class); 没有写后缀啊 NVRCModule 单只的就是库的名字 在linux中 libNVRCModule.so 我这样子的调用应该没有什么错误啊 楼上的也不知道是哥哥姐姐
为啥呢 2013-01-28
  • 打赏
  • 举报
回复
loadLibrary方法是不需要写后缀的,只需要库名,是跨平台的方法... load方法可以输入完整路径。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧