1. 方法简介
a). JNI调用动态库: JNI是安装JDK的时候自带的内容,适用场景为开发前就知道动态库需要供Java程序调用,且需要Java程序提供动态库开发的头文件内容。使用相对复杂,且如果是对于已经存在的动态库需要开发中间库来适配
b). Jacob 调用动态库:Jacob是SUN提供的一个用于调用动态库的类库,使用相对简单,不需要二次开发,但是需要手动进行一些配置工作
c). JNA 调用动态库:JNA是对JNI的二次封装,使用简单,不需要进行二次开发,同样不需要手动进行配置,导入jar包就可以工作
2. JNI调用动态库
假设已经存在一个动态库add.dll,里面存在一个函数int add(int a,int b);现在需要通过JNI去调用这个方法。
·=> 编写调用中间动态库myAdd.dll的类TestDll.java
·=> 通过命令javah得到中间动态库的头文件TestDll.h
·=> 编写生成中间动态库myAdd.dll
·=> 将生成的myAdd.dll放到TestDll.class同目录下,运行java TestDll查看结果
2.1编写调用中间动态库的类生成TestDll.h
【TestDll.java】