账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java使用JNI调用的dll依赖于其它dll路径该如何配置?
    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)需要在编译时进行设置。以下是一些步骤:

      1. 添加库的头文件:在你的Java项目中添加dll的头文件。例如,如果你的dll是一个.so文件,你可能需要添加以下头文件:

      ```java

      include

      ```

      1. 配置动态链接库:在你的Java类中,你需要使用dlopen函数来加载动态链接库。例如:

      java dl法规则库名,返回地址;

      这将加载dll的头文件,然后返回头文件的地址。

      1. 使用dlsym函数:dlsym函数用于获取函数的返回地址。例如:

      java dlsym(handle, function_name);

      这将返回函数的返回地址。

      1. 使用JNI函数:JNI(Java Native Interface)函数是Java调用其他语言(如C)API的一个方法。例如,如果你的dll提供了C函数,你可以使用JNI来调用它。

      2. 使用JNI的参数类型:JNI的参数类型与C语言相同。例如,如果你的dll提供了C函数,你可以使用JNI来传递参数。

      3. 使用JNI的返回类型:JNI的返回类型与C语言相同。例如,如果你的dll提供了C函数,你可以使用JNI来获取返回值。

      以上就是使用JNI调用dll的步骤。请注意,这些步骤可能会根据你的dll的具体结构和依赖关系有所不同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部