一、简介
先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。
JNI的调用流程为
JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架,简而言之,JNA在大多数情况下可以替代JNI。
JNA的调用过程为:
二、JNA相关JAR包下载
链接:https://pan.baidu.com/s/1TLcC0LIfWvpsZf-OwN7QXA
提取码:wcrc
三、环境搭建:
1、导入jar包
2、将dll文件放在源项目根目录下,项目结构为:
3、使用JNA调用Dll文件
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
public class Test2 {
public interface CLibrary extends StdCallLibrary {
//载入DLL.dll文件
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("DLL",CLibrary.class);
//加载dll的函数resultErrorMessageInit
String resultErrorMessageInit(String sql);
}
public static void main(String[] args) {
String sql="select * from aaa";
//调用dll中的函数
String str=CLibrary.INSTANCE.resultErrorMessageInit(sql);
System.out.println("输出的错误信息为"+str);
}
}
控制台输出信息,会将dll中的输出信息同时打印出来