前言

本文主要对针对目前最新版的JNI 6.0官方技术文档进行理解性翻译,并产出中文版文档。有翻译或理解不当之处,望指出。

英文版官方文档《Java Native Interface 6.0 Specification》请查阅:

http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html

除了此文档之外,更多关于JNI的知识,可以查阅Sheng Liang在1999年出版的:

《The Java Native Interface: Programmer's Guide and Specification》一书。

本文档的大多数内容该书都涉及到了,并还有一些补充知识和例子。Sheng Liang博士曾是SUN公司JVM团队的主要开发者之一,耶鲁大学计算机博士。

另外需要注意的是本文中的大部分内容基于官方文档的翻译内容,但中间穿插了一些个人理解性的内容,这些内容并非官方文档的一部分,仅是个人对于文档的理解,因为可能会存在理解不当的地方,所以这部分在文中都会进行特别标注或说明,避免对读者造成任何误导。

之所以对此文档进行如此细致的研读工作,主要是因为JNI的相关文档并不多,特别是中文资料,而这份英文的官方技术规范是目前市面上最权威也是最全面的文档,研读此文档有助于对于JNI知识有一个比较全面而深入的了解。而且因为这份文档包含了所有的JNI函数方法,因此也有参考手册的作用,今后在使用JNI技术的过程中也可查阅本文档以作参考。

遗留问题待解决:

  • native方法不正确时,导致整个系统崩溃。如何避免?貌似无法解决。

  • JNI可以执行运行时类型检查(runtime type checking)是干嘛的?

results matching ""

    No results matching ""