Java本地方法封装库JNA

JNA(Java Native Access)提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。下面是一段使用该工具的示例代码:

  1. import com.sun.jna.Library;   
  2. import com.sun.jna.Native;   
  3. import com.sun.jna.Platform;   
  4.   
  5. /** Simple example of native library declaration and usage. */  
  6. public class HelloWorld {   
  7.   
  8.     public interface CLibrary extends Library {   
  9.         CLibrary INSTANCE = (CLibrary)   
  10.             Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"),   
  11.                                CLibrary.class);   
  12.       
  13.         void printf(String format, Object... args);   
  14.     }   
  15.   
  16.     public static void main(String[] args) {   
  17.         CLibrary.INSTANCE.printf("Hello, World\n");   
  18.         for (int i=0;i < args.length;i++) {   
  19.             CLibrary.INSTANCE.printf("Argument %d: %s\n", i, args[i]);   
  20.         }   
  21.     }   
  22. }  
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓