Java 本機接口是 Java 平臺中一種設計良好和良好集成的 API。它被設計成用來使您能將本機代碼合併到 Java 程序中,也爲您提供了一種在用其它編程語言編寫的程序中使用 Java 代碼的方式。html
使用 JNI 總會破壞 Java 代碼的可移植性。當從 Java 程序調用本機方法時,須要爲每一個您打算運行程序的平臺分發本機共享庫文件。另外一方面,從本機程序調用 Java 代碼實際上能夠改進應用程序的可移植性。java
JNI 使用幾種映射到 Java 類型的本機定義的 C 類型。這些類型能夠分紅兩類:原始類型和僞類(pseudo-classes)。在 C 中,僞類做爲結構實現,而在 C++ 中它們是真正的類。程序員
Java 原始類型直接映射到 C 依賴於平臺的類型,以下所示:算法
C 類型 jarray
表示通用數組。在 C 中,全部的數組類型實際上只是 jobject
的同義類型。可是,在 C++ 中,全部的數組類型都繼承了 jarray
,jarray
又依次繼承了 jobject
。下列表顯示了 Java 數組類型是如何映射到 JNI C 數組類型的。shell
這裏是一棵對象樹,它顯示了 JNI 僞類是如何相關的。編程
用下表指定的編碼將本機 Java 方法參數類型表示或轉換成本機代碼。數組
注:安全
boolean print(String[] parms, int n) |
([Ljava/lang/Sting;I)Z |
下載 數據結構
cc
來編譯 C/C++ 代碼。固然,GCC 是一個一樣可行的開放源碼編譯器。文章和教程 數據結構和算法
推薦書籍
Scott Stricker 是 IBM Global Services 下屬的 Business Innovation Services 的企業應用程序開發人員。他的專長是面向對象技術,尤爲是 Java 和 C++ 編程。
Scott 擁有美國辛辛那提大學計算機科學理學學士學位。他是「Sun 認證的 Java 2 程序員與開發者(Sun Certified Java 2 Programmer and Developer)」。 可經過 sstricke@us.ibm.com 聯繫 Scott。