《The Java Native Interface Programmer's Guide and Specification》
这本书是在我学习JNI的时候参考最多的,也是网络上JNI相关问题的讨论中引用最多的,最近很多新接触JNI的同学都会问到我一些JNI相关的东西,我想这本书可以是一个很好的入门和引导,所以我希望可以翻译它,分享它,与此同时,我也希望自己在翻译的过程中,能够更深入的思考相关问题,并系统的掌握JNI相关的东西。
原书是1999年出的(我参考的英文版本),虽然时间过了很久,但是书中的JNI相关的大部分东西现在都没有变,这也更让我坚信,好的东西是永远不会过时的。
在译文中,我将Native翻译为“原生”,用以表示与系统原生API调用相关的代码。当然,目前大多数国内开发者还是会翻译为“本地”,我想这不是什么理解上的障碍。 原书的JNI的Nativ部分大多示例和介绍以C语言为主,但在原理相通的部分,我会以C++旁注,来帮助C++程序员更好的理解。(比如以类似placement new的方式构建Java对象)。
由于sun早已被oracle吞并,原书的示例代码对应的访问链接也都没有了,所以我也全部重写了原书的所有示例代码,并标注了其编译命令(ubuntu + gcc)。 由于本身英文水平有限,翻译的译文也可能存在有待斟酌的地方,而文字众多,我也必然会写出错字错词,如有发现,还望指出,我好尽快修正。 谢谢。
中文翻译全部托管在看云博客,有需要的可以免费拿来看。