V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whajcf
V2EX  ›  Java

求教大佬,我现在需要打一个第三方调用的 jar 包,需要 jna 引入动态库,那么动态库文件如何配置?

  •  
  •   whajcf · 2019-12-17 17:54:42 +08:00 · 3362 次点击
    这是一个创建于 1803 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求教大佬:
    我需要制作一个 jar 包,给第三方调用,jar 主要功能是加解密,加解密算法写在动态库中,现在碰到的问题如下:
    打包成 jar 包以后动态库就会加载失败,我需要如何配置后打包? 已经折腾一天了,试用了网上很多方法,一直没成功
    6 条回复    2019-12-18 10:45:03 +08:00
    guyeu
        1
    guyeu  
       2019-12-17 21:35:40 +08:00
    大佬教教我动态库是啥。。DDL 吗。。
    pursuer
        2
    pursuer  
       2019-12-17 22:51:53 +08:00
    通常方案,打包动态库,load 之前先从 jar 解压出来,或者和 jar 分开。应该也有一些从内存加载的方案,但要麻烦不少了
    XiLemon
        3
    XiLemon  
       2019-12-18 08:38:50 +08:00
    JNA 可以修改加载动态链接库的路径啊
    XiLemon
        4
    XiLemon  
       2019-12-18 08:43:03 +08:00
    启动应用的时候可以打开日志:System.setProperty("jna.debug_load", "true");
    然后设置指定的路径:System.setProperty("jna.library.path", jnaLibPath);

    具体的你可以看下文档: http://java-native-access.github.io/jna/4.5.2/javadoc/com/sun/jna/NativeLibrary.html
    whajcf
        5
    whajcf  
    OP
       2019-12-18 09:55:44 +08:00
    @XiLemon 谢谢 我去尝试下 jar 被引用的时候 如何获取被引用的 jar 或 jar 包里类的目录的路径?
    quadrapop
        6
    quadrapop  
       2019-12-18 10:45:03 +08:00
    首先 dll 肯定是打包在 jar 包里的
    在调用的时候,先获取项目的绝对路径,然后把 dll 复制到到项目的根路径,初始化 jna 的时候就使用复制后的路径就行
    我自己的项目就是这么弄的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2698 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.