1,什么是JNA?
JNA全称Java Native Access,是一个建立在JNI技术之上的Java开源框架。
2,JNA有什么用?
Java开发过程中,有时候会需要和C,C++等交互,JNA相当于中间的适配器
3,如何使用JNA?
简单示例:
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
/** Simple example of JNA interface mapping and usage. */
public class HelloWorld {
public interface CLibrary extends Library {
// C库的映射
CLibrary INSTANCE = (CLibrary)
Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"),CLibrary.class);
//声明C库的方法(Java中需要使用的),这里声明C中的一个打印方法
void printf(String format, Object... args);
}
public static void main(String[] args) {
//调用c库方法
CLibrary.INSTANCE.printf("Hello, World\n");
}
}
代码解释:
(Platform.isWindows() ? "msvcrt" : "c")
printf函数在Windows平台下所在的dll库名称是msvcrt,而在其它平台如Linux下的so库名称是c。
这里可以了解一下.dll文件
也可以直接调用自定义的,由C语言编译而成的dll文件
代码:
优秀文章指路:
https://marco.blog.csdn.net/article/details/55097376