JNA(Java Native Access )提供一組Java工具類用於在運行期動態訪問系統本地庫(native library:如Window的dll)而不須要編寫任何Native/JNI代碼。開發人員只要在一個java接口中描述目標native library的函數與結構,JNA將自動實現Java接口到native function的映射。
說白了就是Java直接訪問/調用本地動態庫。最好的入門方法就是從JNA的官網開始。
官網下載地址:https://github.com/twall/jna java
eclipse下結構以下: git
import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Platform; /** Simple example of native library declaration and usage. */ public class JnaTest { public interface CLibrary extends Library { CLibrary INSTANCE = (CLibrary) Native.loadLibrary((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]); } } }
參數配置: github
運行結果以下: eclipse