JNA从入门到精通-01简介

概述

JNA 使 Java 程序可以轻松访问本机共享库,而无需编写 Java 代码以外的任何内容 - 不需要 JNI 或本机代码。此功能可与 Windows 的 Platform/Invoke 和 Python 的 ctypes 相媲美。

JNA 允许您使用自然 Java 方法调用直接调用本机函数。Java 调用看起来就像本机代码中的调用一样。大多数调用不需要特殊处理或配置;不需要样板文件或生成的代码。

JNA 使用小型 JNI 库存根来动态调用本机代码。开发人员使用 Java 接口来描述目标本地库中的函数和结构。这使得利用本机平台功能变得非常容易,而不会产生为多个平台配置和构建 JNI 代码的高昂开销。阅读这个更深入的描述。

尽管人们对性能给予了极大的关注,但正确性和易用性是优先考虑的。

此外,JNA 包括一个平台库,其中已经映射了许多本机功能,以及一组简化本机访问的实用程序接口。

特征

  • 从 Java 到本机函数的自动映射,所有原始数据类型的简单映射
  • 在大多数支持 Java 的平台上运行
  • C 和 Java 字符串之间的自动转换,具有可定制的编码/解码
  • 结构和联合参数/返回值,按引用和按值
  • 函数指针,(从本机代码到 Java 的回调)作为参数和/或结构的成员
  • 为本地函数指针自动生成的 Java 代理
  • 按引用(指向类型的指针)参数
  • Java 数组和 NIO 缓冲区参数(原始类型和指针)作为指向缓冲区的指针
  • 嵌套结构和数组
  • 宽(基于 wchar_t)字符串
  • 本机长支持(32 位或 64 位,视情况而定)
  • 演示应用程序/示例
  • 在 1.4 或更高版本的 JVM 上受支持,包括 JavaME(早期的 VM 可能与存根 NIO 支持一起工作)
  • 可定制的编组/解组(参数和返回值转换)
  • 从 Java 方法到本机函数名称的可定制映射,以及可定制调用以模拟 C 预处理器函数宏
  • 支持自动 Windows ASCII/UNICODE 函数映射
  • 可变参数支持
  • 本机指针的类型安全
  • 虚拟机崩溃保护(可选)
  • 针对高性能应用程序优化的直接映射。
  • COM 支持早期和晚期绑定。
  • COM/Typelib java 代码生成器。

你可能感兴趣的:(JNA从入门到精通-01简介)