什么是JNA
Java Native Access(JNA)
JNA 使 Java 程序可以轻松访问本地共享库,而无需编写 Java 代码之外的任何内容 - 不需要 JNI
JNA 允许使用自然 Java 方法直接调用本地函数,和平常写代码一样,大多数情况下无需特殊处理或配置
JNA 使用小型 JNI 库来动态调用本地代码,开发人员使用Java接口来描述目标动态库中的函数和结构。这使得调用本地平台功能变得非常容易,而不会产生为多个平台配置和构建 JNI 代码的高开销
技术要求
对C有一定的了解
对Java较为熟练
对docker有所了解(本教程通过docker搭建linux环境,如果有现成的虚拟机或者云服务器,可以不用docker)
开发环境
-
操作系统:Windows 10 专业版
-
jdk: 1.8.0_241 64位
-
java开发工具:IntelliJ IDEA 2023.2.1
-
dll开发工具:CLion 2023.2.2
-
JNA版本:5.13.0
<dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>5.13.0</version> </dependency>
-
dll分析神器:Dependency Walker (可选),这个东西有缓存,在检查dll函数不变的情况下,需要关闭后重新打开,再查看dll库才有变化
下载地址:GitCode - 开发者的代码家园
-
安装 docker desktop(可选)