原文連結:http://blog.sina.com.cn/s/blog_53988c0c0100osmc.html
(The Java Native Interface Programmer's Guide and Specification)
序言
這本書涉及了"Java"本地介面(JNI)。如果你對下列情況感興趣,這本書將對你有用:
.整合帶有例如"C"或C++"語言編寫的傳統代碼的Java應用程式。
.用例如"C"或C++"語言編寫的已存在的程式來實現Java虛擬機器。
.實現一個Java虛擬機器(Java virtual machine)
.理解在語言互通性上的技術說明,特別是怎樣處理例如垃圾收集和多線程的特性。
首先,這本書是為開發人員寫的。在"JNI"各種特性上的豐富的各種討論,和在怎樣有效使用"JNI"的有協助的提示後,你將能發現很容易按部就班的開始使用"JNI"。"JNI"在1997年初初始發布。這本書總結了,在"Sun"微系統(Sun Microsystem)上工程師和還有在技術交流社區中大量的開發人員,獲得的兩年經驗。
第二,這本書體現了各種"JNI"特性的設計基本原理。不僅學術界感興趣這個,而且十分透徹的實際理解也是高效使用JNI的先決條件。
第三,這個書的一部分是為"Java 2"平台的"JNI"定義規範。JNI編程可以使用這個規範當作參考說明書。Java虛擬機器的實現必須按照規範來一致實現。
關於這個規範的評論或關於"JNI"的問題請發送到我們的地址郵件:jni@java.sun.com。為了最新的"Java 2"平台,或最新的"Java 2 SDK release"。請訪問我們的網站<<<http://java.sun.com>>>。為關於"Java Series"的更新資訊包括這本的勘誤表和將要出版書的預覽,請訪問<<<http://java.sun.com/Series>>>。
"JNI"的設計引來了在"Sun Microsystems"和Java技術授權之間的一些列爭論。"JNI"是來自"Netscape"的JRI(Java Runtime Interface)的部分進化而來,"JNI"是"Warren Harris"設計的。來自Java技術授權公司的許多人積極地參與了設計的討論。他們包括Russ Arun(Microsoft), Patrick Beard(Apple),Simon Nash(IBM),Ken Root(Intel),Ian Ellision-Taylor(Microsoft),
and Mike Toutoghi(Microsoft)。
"JNI"的設計也大量地得益於Sun內部設計評論,這評論來自Dave Bowen, James Gosling, Peter Kessler, Tim Lindholm, Mark Reinhold, Derek White and Frank Yellin。Dave Brown, Dave Connelly, James McIlree, Benjamin Renaud, andTom Rodrigues對"JNI"在"Java 2 SDK 1.2"上的增強做出了有意義的貢獻。在俄羅斯新西伯利亞(Novosibirsk)的相容性測試的Carla
Schroer的團隊為"JNI"寫了相容性測試程式。在這過程中,他們發現了原始規範不清楚或不完整的地方。
"JNI"技術沒有Dave Bowen, Larry Abrahams, Dick Neiss, Jon Kannegaard,and Alan Baraz的管理支援將不能被開發和部署。我得到來自我的經理Dave Bowen的強有力地支援和鼓勵來寫這本書。
Tim Lindholm,《The Java Virtual Machine Specification》的作者,在"JNI"被設計時,正主導Java虛擬機器開發。Tim在虛擬機器和本機介面上做了引領性的工作,提倡"JNI"的使用和為這書增加了嚴密性和清晰度。為這本書的封面的廚房和餐廳的藝術設計,他也提供初始的草圖。
這本書得益於許多同事的協助。Anand Palaniswamy寫了第十章關於一般陷阱和缺陷(on common traps and pitfalls)的部分。Janet Keonig細心地預讀初始的草稿和貢獻了許多哦有用的意見。Beth Stearns根據線上的JNI指南寫了第二章的草稿。
我從Craig J.Bordelon, Michael Brundage, Mary Dageforde, Joshua Engel and Elliott Hughes處得到關於這本書草稿有價值的評論。
Lisa Friendly, The Java Series的編者,有助於這本書的編寫和出版。Ken Arnold, The Java Programming Language得到作者,首先提出了JNI書的編寫。我要感謝在整個過程中Mike hedrikson和Marina Lang給的協助和耐心在Addison-Wesley出版社。Diance監督了生產流程從複製,編輯和最後的列印。
在過去的幾年裡,我和一群在Sun Micorsystems上的Java軟體中有才能和奉獻的人一起,有特權的工作,特別是original,HotSpot and Sun Labs虛擬機器團隊成員。這本書獻給他們。