首页/文章列表/文章详情

JNA使用入门

编程知识2492024-08-09评论

JNA即Java Native Access。

官方文档

使用样例

准备Java代码文件,内容来源于Getting Started,如下:

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 { // This is the standard, stable way of mapping, which supports extensive // customization and mapping of Java to native types. public interface CLibrary extends Library { CLibrary INSTANCE = (CLibrary) Native.load((Platform.isWindows() ?"msvcrt" :"c"), CLibrary.class); void printf(String format, Object... args); } public static void main(String[] args) { CLibrary.INSTANCE.printf("Hello, World\n"); for (int i=0;i < args.length;i++) { CLibrary.INSTANCE.printf("Argument %d: %s\n", i, args[i]); } }}

修改项目的pom.xml,增加如下依赖:

<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna --><dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.14.0</version></dependency>

等待依赖下载完毕,构建完毕,运行前述样例代码。

从源码构建JNA

  • Setting up a Windows Development Environment
    在Windows环境执行构建,执行如下命令:
    cd C:\Code\jnaset JAVA_HOME=C:\Tools\jdkset ANT_HOME=C:\Tools\antset CYGWIN_HOME=C:\Tools\cygwin64set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%CYGWIN_HOME%\bin;%PATH%"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64ant
    在Linux环境执行构建,执行如下命令:
    cd /path/to/jna_codeexport JAVA_HOME=/path/to/jdkexport ANT_HOME=/path/to/antexport PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATHant
  • Android Development Environment
    在Linux环境执行构建,执行如下命令:
    cd /path/to/jna_codeexport JAVA_HOME=/path/to/jdkexport ANT_HOME=/path/to/antexport PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATHexport NDK_PLATFORM=/path/to/android-ndk-r12b/platforms/android-21export PATH=$NDK_PLATFORM/../../toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/:$PATHant -Dos.prefix=android-aarch64

参考资料

博客园

这个人很懒...

用户评论 (0)

发表评论

captcha