栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JAR内捆绑本机库和JNI库?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JAR内捆绑本机库和JNI库?

可以创建具有所有依赖性的单个JAR文件,包括一个或多个平台的本机JNI库。基本机制是使用System.load(File)加载库,而不是使用典型的System.loadLibrary(String)来搜索java.library.path系统属性。由于用户不必在系统上安装JNI库,因此此方法使安装更加简单,但是这样做可能会不支持所有平台,因为平台的特定库可能未包含在单个JAR文件中。

流程如下:

  • 在平台特定位置的JAR文件中包含本机JNI库,例如在NATIVE / $ {os.arch} / $ {os.name} /libname.lib
  • 在主类的静态初始化中创建代码以
  • 计算当前的os.arch和os.name
  • 使用Class.getResource(String)在预定义位置的JAR文件中查找库
  • 如果存在,请将其提取到临时文件中,并使用System.load(File)加载。
    我添加了为jzmq(ZeroMQ(无耻插件)的Java绑定)执行此操作的功能。该代码可以在这里找到。jzmq代码使用混合解决方案,因此,如果无法加载嵌入式库,则该代码将恢复为沿java.library.path搜索JNI库。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号