Első lépések a Java natív interfésszel (JNI)

Getting Started With Java Native Interface



A Java natív interfész (JNI) egy olyan programozási felület, amely lehetővé teszi a Java fejlesztők számára, hogy más programozási nyelvek kódjait és töredékeit futtassák a Java nyelven. Az alapvető Java szoftverfejlesztő készlettel vagy SDK -val együtt érkezik (ezt egy másik oktatóanyagban tárgyaljuk).

A JNI -t az is tiszteli, hogy meghívja az API -t, hogy besurranjon egy Java virtuális gépbe a Java alkalmazásokban. Ez lehetővé teszi, hogy a fejlesztők meghívják a java kódot a natív alkalmazás kódján belül.







Ha egy kis időt töltött a java -val, akkor valószínűleg már találkozott azzal a sok teljesítményproblémával, amelyek elkerülhetetlenül az utat mutatják. Ez nem jelent problémát, ha ugyanazt a kódot futtatja anyanyelvén, amely több mint tizennyolcszor gyorsabban tud teljesíteni, ha összeállított modellben olvassa. Emellett elavult/nem kompatibilis hardverrutinokat is használhat más nyelvek natív kódjaival.



Ez az oktatóanyag bemutatja, hogyan lehet meghívni a gép C/C ++ kódját egy java alkalmazásból.



Előfeltételek

Szüksége lesz néhány dologra, hogy ezt az útmutatót megfelelően kövesse. Ezek közé tartozik a Java fordító, vagy a Javac.exe, a JVM mellett, valamint a natív C módszer generátor (javah.exe). Mindhármat beépítették a szoftverfejlesztő készletbe, így minden rendben van, ha ez megvan. E három mellett szüksége lesz a JNI -t meghatározó fájlokra is, beleértve a natív fejlécfájlokat és a teljes könyvtári fájlokat.





És természetesen a C és C ++ kódok futtatásáról szóló oktatóanyagban a C fordítót is használjuk megosztott könyvtár létrehozásához.

JNI összetevők

A JNI -t alapvetően két összetevő hajtja, nevezetesen a h és a javah. A H a fejlécfájl -összetevő, amely a natív kódokat java kóddal helyettesíti, míg a Javah lehetővé teszi, hogy ez a fájl önmagában betölthető legyen az alkalmazásfejléc -fájlokba.



C/C ++ meghívása Java kódból

Lépés: Írja be a kódot Java -ban

A kódot először Java -ban írják, és három feltételnek felel meg. Először is a natív módszerrel írják, hogy később meghívható legyen. Másodszor, be kell töltenie a megosztott könyvtárat, amelynek része a natív kód, és végül meg kell hívnia a natív módszereket.

Ezt a kódot használjuk a további szemléltetéshez:

Figyelje meg a 3. és 6. sort; ezek azok a sorok, ahol a natív módszerek szerepelnek. A megosztott könyvtárakat betöltő kód a 10. sorban található, ami azt eredményezi, hogy a módszert a 12–15. Sorok között hívják meg.

2. lépés: A java kód fordítása bytecode -ra

A második lépés a java kód fordításával kapcsolatos. A javac fordító itt elvégezheti helyettünk a munkát; csak adja ki az alábbi parancsot:

$ javac Példa1.Jáva

3. lépés: Hozzon létre C/C ++ fejlécfájlokat

Ezután létre kell hozni az anyanyelvi fejlécfájlokat. Ez a fejlécfájl biztosítja a natív kódok aláírását.

Ezek a fejlécfájlok a javah natív eszközével, az SDK -val csomagolt C csonkgenerátorral hozhatók létre a következő paranccsal:

javah Példa 1

A következő kimenetnek kell visszatérnie:

4. lépés: Írja be a natív kódot

Ide írjuk a C/C ++ kódot. Jegyezze fel az összes aláírást, amelyeknek hasonlítaniuk kell az 1. lépésben tett nyilatkozatokhoz.

Az alábbiakban egy C nyelven írt megvalósítás található:

5. lépés: Hozzon létre egy megosztott könyvtárat

Megosztott könyvtár bármely fordítóval létrehozható. Mivel a megosztott könyvtár tartalmazza a natív kódot, létre kell hoznunk egyet.

6. lépés: Indítsa el a programot

Ez a lépés magában foglalja a kód felmérését és a programmal kapcsolatos problémák azonosítását. Ez magában foglalja a Java futtatókörnyezetet, mert a kód elsősorban a JVM -ben fog futni.

Adja ki a következő parancsot:

java Példa 1

Vissza kell térnie:

Tehát ez volt a kezdő rövid útmutatónk a Java natív felület használatához. Reméljük, hogy hasznosnak találta.

A JNI -vel való munka megtanulása elengedhetetlen mindazok számára, akik Java -alkalmazásokat szeretnének fejleszteni, különösen androidos alkalmazásokat okostelefonokhoz.