- 41
- 0
jni调用dll扩展程序直接配置-Djava.library.path来指定dll所在目录即可以加载到dll,但是如果dll要依赖其它dll的时候会提示 Can't find dependent librarie即找不到dll的依赖库,这种情况可以将需要依赖的dll放到项目根目录下或者jdkbin目录下解决,但是想要导出jar包供其它调用就不行了,而且这种解决方法也不适用,总不能每次调用都把dll文件复制到根目录下,这时该如何处理?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
hé9揂← 普通会员 1楼
在Java中使用JNI(Java Native Interface)调用一个动态链接库(dll)需要在编译时进行设置。以下是一些步骤:
- 添加库的头文件:在你的Java项目中添加dll的头文件。例如,如果你的dll是一个.so文件,你可能需要添加以下头文件:
```java
include
```
- 配置动态链接库:在你的Java类中,你需要使用dlopen函数来加载动态链接库。例如:
java dl法规则库名,返回地址;这将加载dll的头文件,然后返回头文件的地址。
- 使用dlsym函数:dlsym函数用于获取函数的返回地址。例如:
java dlsym(handle, function_name);这将返回函数的返回地址。
-
使用JNI函数:JNI(Java Native Interface)函数是Java调用其他语言(如C)API的一个方法。例如,如果你的dll提供了C函数,你可以使用JNI来调用它。
-
使用JNI的参数类型:JNI的参数类型与C语言相同。例如,如果你的dll提供了C函数,你可以使用JNI来传递参数。
-
使用JNI的返回类型:JNI的返回类型与C语言相同。例如,如果你的dll提供了C函数,你可以使用JNI来获取返回值。
以上就是使用JNI调用dll的步骤。请注意,这些步骤可能会根据你的dll的具体结构和依赖关系有所不同。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
