Spring调用dll的实现
JNA简介
JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna)。JNA提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
JNA的难点是编程语言之间的数据类型不一致,以及只能实现JAVA单向调用C的dll文件。
VS实现动态链接库DLL
创建DLL
pch.h
1 | // pch.h: 这是预编译标头文件。 |
pch.cpp
1 | // pch.cpp: 与预编译标头对应的源文件 |
生成DLL文件
Spring调用DLL
添加gradle依赖
1 | // JNA依赖 |
注意
dll文件是64位的话,就要用64位的jdk!dll文件是32位的话,就要用32位的jdk!
编写调用接口
1 | public class DllService { |
连接调用
1 | public class DllConnect { |