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文件
windows系统中,什么是dll文件?
也可以直接调用自定义的,由C语言编译而成的dll文件
代码:
优秀文章指路:
https://marco.blog.csdn.net/article/details/55097376
4,官方指路
https://github.com/java-native-access/jna#readme