whajcf
V2EX  ›  Java

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

  •  
  •   whajcf · Dec 17, 2019 · 4068 views
    This topic created in 2353 days ago, the information mentioned may be changed or developed.
    求教大佬:
    我需要制作一个 jar 包,给第三方调用,jar 主要功能是加解密,加解密算法写在动态库中,现在碰到的问题如下:
    打包成 jar 包以后动态库就会加载失败,我需要如何配置后打包? 已经折腾一天了,试用了网上很多方法,一直没成功
    6 replies    2019-12-18 10:45:03 +08:00
    guyeu
        1
    guyeu  
       Dec 17, 2019
    大佬教教我动态库是啥。。DDL 吗。。
    pursuer
        2
    pursuer  
       Dec 17, 2019
    通常方案,打包动态库,load 之前先从 jar 解压出来,或者和 jar 分开。应该也有一些从内存加载的方案,但要麻烦不少了
    XiLemon
        3
    XiLemon  
       Dec 18, 2019
    JNA 可以修改加载动态链接库的路径啊
    XiLemon
        4
    XiLemon  
       Dec 18, 2019
    启动应用的时候可以打开日志: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
       Dec 18, 2019
    @XiLemon 谢谢 我去尝试下 jar 被引用的时候 如何获取被引用的 jar 或 jar 包里类的目录的路径?
    quadrapop
        6
    quadrapop  
       Dec 18, 2019
    首先 dll 肯定是打包在 jar 包里的
    在调用的时候,先获取项目的绝对路径,然后把 dll 复制到到项目的根路径,初始化 jna 的时候就使用复制后的路径就行
    我自己的项目就是这么弄的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 827ms · UTC 22:10 · PVG 06:10 · LAX 15:10 · JFK 18:10
    ♥ Do have faith in what you're doing.