Nativní rozhraní Java

JNI ( Java Native Interface ) je softwarová knihovna pro propojení integrován nativně JDK Java, který umožňuje Java kód běží uvnitř JVM volat a být volán nativních aplikací (tj. Programy specifické pro hardware a operační systém dotyčné platformy) nebo se softwarovými knihovnami založenými na jiných jazycích ( C , C ++ , assembler atd.).

Zde je několik příkladů použití JNI:

Složitost programování

Garbage collector nefunguje JNI funkce , proto musí být programátor ve svém programování přísný.

Rozhraní JNI je méně složité s jazykem, který již používá objekty (jako C ++), zatímco na rozdíl od jazyků, jako je C, není koncept objektu a programování je obtížnější.

Jak JNI funguje

Když JVM volá funkci JNI, předá dva parametry Java jako parametry , první do objektu typu JNIEnv , druhý do libovolného objektu.

Zde je typický příklad volání funkce JNI.

JNIEXPORT void JNICALL Java_ClassName_MethodName (JNIEnv *env, jobject obj) { //Implement Native Method Here }

Ukazatel envje struktura, která obsahuje rozhraní k JVM. Zahrnuje všechny funkce potřebné k interakci s JVM a práci s objekty Java.

Příklady funkce JNI: převodní tabulky Java nativní obrazy, řetězec Java String nativní znaky, vytvořit instanci objekty, zvládnout výjimky .

Shoda typu

Následující tabulka uvádí hlavní příklady korespondence mezi typy Java a nativními typy C.

Typ Java Nativní typ C. Popis Podpis typu
booleovský nepodepsaný znak boolean (false = 0) Z
byte podepsaný znak 8bitové celé číslo se znaménkem B
nádrž bez znaménka krátký 16bitové celé číslo bez znaménka VS
šortky šortky 16bitové celé číslo se znaménkem S
int int 32bitové celé číslo se znaménkem
dlouho dlouhý dlouhý
nebo  __int64
64bitové celé číslo se znaménkem J
plovák plovák 32bitové číslo s plovoucí desetinnou čárkou F
dvojnásobek dvojnásobek 64bitové číslo s plovoucí desetinnou čárkou D

Reference

  1. (en) http://java.sun.com/docs/books/jni/html/intro.html#1811 .

Dodatky

Podívejte se také

Externí reference