Java JNI(Java Native Interface),主要业务场景是通过Java调用C/C++的动态链接库,来完成Java不能干的事情。
操作系统区分
Linux 下动态库文件后缀名为.so,默认存放的路径是/usr/lib,如果是64位则/usr/lib64
Windows 下动态库文件后缀名.dll,默认存放路径32位(C:\Windows\SysWOW64),64位(C:\Windows\System32)
JNA
JNA是SUN公司主导JNI的框架,用法如下:
代码示例
package com.terry.jni;
import com.sun.jna.Library;
import com.sun.jna.Native;
/**
* JNA 测试
* @author terry
* @version 1.0
* @date 2021/12/25 17:09
*/
public interface JNATest extends Library {
JNATest INSTANCE = (JNATest)Native.loadLibrary("./dll/JNATest.dll", JNATest.class);
/**
* 初始化JNA
* @return
*/
boolean isInit();
public static void main(String[] args) {
JNATest jnaTest = JNATest.INSTANCE;
boolean isInit = jnaTest.isInit();
System.out.println("初始化成功!");
}
}