whajcf
V2EX  ›  Java

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

By whajcf at 2019 年 12 月 17 日 · 4322 次点击
求教大佬:
我需要制作一个 jar 包,给第三方调用,jar 主要功能是加解密,加解密算法写在动态库中,现在碰到的问题如下:
打包成 jar 包以后动态库就会加载失败,我需要如何配置后打包? 已经折腾一天了,试用了网上很多方法,一直没成功
6 条回复  •  2019-12-18 10:45:03 +08:00
guyeu
   1
guyeu  
   2019 年 12 月 17 日
大佬教教我动态库是啥。。DDL 吗。。
pursuer
   2
pursuer  
   2019 年 12 月 17 日
通常方案,打包动态库,load 之前先从 jar 解压出来,或者和 jar 分开。应该也有一些从内存加载的方案,但要麻烦不少了
XiLemon
   3
XiLemon  
   2019 年 12 月 18 日
JNA 可以修改加载动态链接库的路径啊
XiLemon
   4
XiLemon  
   2019 年 12 月 18 日
启动应用的时候可以打开日志: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 日
@XiLemon 谢谢 我去尝试下 jar 被引用的时候 如何获取被引用的 jar 或 jar 包里类的目录的路径?
quadrapop
   6
quadrapop  
   2019 年 12 月 18 日
首先 dll 肯定是打包在 jar 包里的
在调用的时候,先获取项目的绝对路径,然后把 dll 复制到到项目的根路径,初始化 jna 的时候就使用复制后的路径就行
我自己的项目就是这么弄的
© 2026 V2EX · 47ms · 3.9.8.5