Java 語言與標準 API 處理應用程式編寫綽綽有餘。但特定情況必須使用非 Java 代碼:存取作業系統專用特性、操作特殊硬體設備、復用現有非 Java 介面、使用「對時間敏感」代碼段等。與非 Java 代碼溝通需編譯器與虛擬機專門支援、附加工具映射 Java 至非 Java 代碼(簡單替代:第 15 章標準輸入輸出連接)。
不同開發商提供不同方案:
• Java 1.1:Java 固有介面(JNI)
• Netscape:Java 執行期介面(JRI)計畫
• Microsoft:J/Direct、原始原生介面(RNI)、Java/COM 整合
廠商態度差異對程式設計師極不利:應用程式調用固有方法時,可能需實現不同版本固有方法(視運行平台決定),甚至需不同版本 Java 代碼與 JVM。
另一方案為 CORBA(通用物件請求代理架構),由 OMG(物件管理群組,非營利公司協會)開發的整合技術。CORBA 非語言一部分,僅實現通用通訊總線與服務的規範。利用它可在不同語言實現物件間實現「互操作」。通訊總線稱 ORB(物件請求代理),由其他開發商實現產品,不屬 Java 語言規範一部分。
本附錄對 JNI、J/DIRECT、RNI、JAVA/COM 整合與 CORBA 進行概述,不作深層探討,有時假設讀者具相關概念技術認知。最終讀者應能自行比較不同方法,依問題選擇最恰當方案。