JNI详解
文章平均质量分 94
基于javaSE 21介绍 Java Native Interface
https://docs.oracle.com/en/java/javase/
Snasph
show me the money.
展开
-
01-导言
虽然可以完全使用 Java 编写应用程序,但在某些情况下,仅使用 Java 无法满足应用程序的需求。程序员使用 JNI 编写 Java 本地方法,以处理应用程序不能完全用 Java 编写的情况。下面的示例说明了何时需要使用 Java 本地方法:①.标准 Java 类库不支持应用程序所需的平台相关功能。②.已经有了一个用其他语言编写的库,希望通过 JNI 使 Java 代码可以访问它。③.想用汇编等低级语言实现一小部分运行效率高的代码。通过 JNI 编程,可以使用本地。原创 2024-03-01 23:11:44 · 959 阅读 · 0 评论 -
02-设计概述
本章重点讨论 JNI 中的主要设计问题。本节中的大多数设计问题都与本地方法有关。调用 API 的设计将在第 5 章:调用 API 中介绍。原创 2024-03-02 11:03:59 · 839 阅读 · 0 评论 -
03-JNI 类型和数据结构
上一篇:本章讨论 JNI 如何将 Java 类型映射为本地 C 类型。原创 2024-03-02 11:37:39 · 919 阅读 · 0 评论 -
04-JNI函数
本章是 JNI 函数的参考章节。它提供了所有 JNI 函数的完整列表。它还介绍了 JNI 函数表的具体布局。注意:使用 "必须 "一词来描述对 JNI 程序员的限制。例如,当你看到某个 JNI 函数必须接收一个非 NULL 对象时,你就有责任确保 NULL 不会传递给该 JNI 函数。因此,JNI 实现无需在该 JNI 函数中执行 NULL 指针检查。在明确不允许的情况下传递 NULL 可能会导致意外异常或致命崩溃。定义为既可返回 NULL 又可在出错时抛出异常的函数,原创 2024-03-05 11:17:41 · 912 阅读 · 0 评论 -
05-调用API
下面的代码示例说明了如何使用调用 API 中的函数。在这个示例中,C++ 代码创建了一个 Java VM 并调用了一个名为 Main.test 的静态方法。为清晰起见,我们省略了错误检查。...本示例使用了 API 中的两个函数。调用 API 允许本地应用程序使用 JNI 接口指针访问虚拟机功能。原创 2024-03-05 11:20:23 · 795 阅读 · 0 评论