2011-08-24 46 views

回答

2

Java本機接口(JNI)是一種編程框架,能夠在Java虛擬機(JVM)來調用和運行Java代碼,通過特定的硬件和操作系統的本地應用程序(程序調用[1]系統平臺)和用C,C++和彙編等其他語言編寫的庫。

無恥地從wikipedia(「JNI」)複製。 JNI是每個JRE/JDK的一部分,JRE中的很多Java方法通過JNI調用本地代碼。

2

這個問題需要一些改寫,恐怕。但是我假設你想知道Java API如何完成它的工作。它很多都是用Java編寫的,但是一些基本的東西絕對需要操作系統和底層硬件的配合,是爲特定的平臺編寫的(很可能用C/C++),並且通過JNI ,Java本地接口。這就是爲什麼JVM是特定於平臺的原因。

4

要麼執行編譯的java字節碼,要麼通過顯式定義爲本機的API方法,通過正常調用由JVM完成的操作系統庫(如windoes dll:s),在這種情況下,它們調用導出的本機函數在java運行時庫(在windows的情況下是原生的java dll:s),而後者又可以調用其他本地庫中的函數。

相關問題