java调用dll动态链接库
2018-07-19 本文已影响0人
乌云老思
因为动态库文件是使用c或是c++编写的,所以在java中是不能直接调用动态库文件的,作为一种跨平台的编程语言,java提供了一些用来读取dll文件方法。
Jna调用动态库
JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native
library的函数与结构,JNA将自动实现Java接口到native function的映射。
使用步骤:
(1):调入jar包,使用Jna之前我们需要在项目中首先导入Jna的jar包,有两个,jna-3.3.0-platform.jar 和 jna.jar
(2):将需要调用的第三方dll文件放在项目的根目录下
(3):编写调用的方法
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
public class HelloWorld {
public interface Dll extends StdCallLibrary {
Dll INSTANCE = (Dll) Native.loadLibrary("SiInterface", Dll.class);//加载动态库文件
public int INIT();//动态库中调用的方法
}
public static void main(String[] args) {
System.out.println(Dll.INSTANCE.INIT());
}
}
需要注意:当dll文件不在项目的根目录下,路径要写成绝对路径