Početak rada s Java Native Interface (JNI)

Getting Started With Java Native Interface

Java Native Interface, skraćeno JNI, programsko je sučelje koje Java programerima omogućuje pokretanje kodova i isječaka iz drugih programskih jezika u Javi. Dolazi zajedno s osnovnim Java Software Development Kit -om ili SDK -om (o tome ćemo govoriti u drugom vodiču).

JNI je također cijenjen zbog svoje mogućnosti pozivanja API -ja da se ušunja u Java virtualni stroj u Java aplikacijama. To omogućuje razvojnim programerima da pozovu java kod unutar koda izvorne aplikacije.



Ako ste neko vrijeme radili s javom, vjerojatno ste već naišli na mnoga pitanja u vezi s performansama koja vam se neizbježno pojavljuju. To nije problem kada pokrenete isti kôd na materinjem jeziku, koji može raditi više od osamnaest puta brže kada se čita u sastavljenom modelu. Osim toga, možete koristiti i zastarjele/nekompatibilne hardverske rutine s izvornim kodovima na drugim jezicima.



Ovaj će vodič pokazati kako se strojni C/C ++ kod može pozvati iz java aplikacije.



Preduvjeti

Trebat će vam nekoliko stvari koje morate pravilno provesti s ovim vodičem. To uključuje Java prevoditelj ili Javac.exe, zajedno s JVM -om, kao i izvorni generator C metode (javah.exe). Sve tri navedene komponente ugrađene su u komplet za razvoj softvera pa ste svi dobri ako to imate. Osim ove tri, trebat će vam i datoteke koje definiraju JNI, uključujući izvorne datoteke zaglavlja i potpune datoteke knjižnice.

I naravno, u vodiču o pokretanju kodova C i C ++ također ćemo koristiti C prevoditelj za stvaranje zajedničke biblioteke.

Komponente JNI

JNI uglavnom pokreću dvije komponente, naime h i javah. H je komponenta datoteke zaglavlja koja zamjenjuje izvorne kodove java kodom, dok Javah to čini tako da se ova datoteka može sama učitati u datoteke zaglavlja aplikacije.



Pozivanje C/C ++ iz Java koda

Korak 1: Pisanje koda u Javi

Kôd je prvo napisan u javi i usklađen je s tri uvjeta. Prvo, napisano je izvornom metodom koja će se kasnije pozvati. Drugo, mora učitati zajedničku knjižnicu čiji je dio izvorni kod, i na kraju, mora pozvati izvorne metode.

Upotrijebimo ovaj kôd za daljnje ilustriranje:

Redci obavijesti 3 i 6; ovo su linije u koje su uključene izvorne metode. Kod koji učitava dijeljene knjižnice nalazi se na retku 10, što dovodi do dozivanja metode između redaka 12 do 15.

Korak 2: Kompilacija java koda u bytecode

Drugi korak se odnosi na sastavljanje java koda. Prevoditelj javac može ovdje obaviti posao umjesto nas; samo izdajte naredbu ispod:

$ javac Primjer1.Java

Korak 3: Stvorite datoteke zaglavlja C/C ++

Zatim se moraju stvoriti datoteke zaglavlja izvornog jezika. Ove datoteke zaglavlja pokreću potpise izvornih kodova.

Ove se datoteke zaglavlja mogu stvoriti pomoću javah native alata, C stub generatora u paketu sa SDK -om, pomoću sljedeće naredbe:

javah Primjer1

Sljedeći izlaz trebao bi se vratiti:

Korak 4: Pisanje izvornog koda

Ovdje ćemo napisati C/C ++ kôd. Trebali biste zabilježiti sve potpise koji moraju nalikovati izjavama koje smo dali u 1. koraku.

Slijedi implementacija napisana na jeziku C:

Korak 5: Izradite zajedničku biblioteku

Zajednička biblioteka može se stvoriti bilo kojim prevoditeljem. Budući da zajednička knjižnica sadrži izvorni kôd, morat ćemo ga stvoriti.

Korak 6: Pokrenite svoj program

Ovaj korak uključuje procjenu koda i identificiranje problema s programom. Ovo će uključivati ​​Java runtime okruženje jer će se kod prvenstveno izvršavati u JVM -u.

Izdajte sljedeću naredbu:

java Primjer1

Trebalo bi vratiti:

Dakle, to je bio naš kratki vodič za početnike u korištenju Java Native Interface. Nadamo se da vam je to pomoglo.

Naučiti raditi s JNI -om bitno je za svakoga tko želi razvijati Java aplikacije, osobito android aplikacije za pametne telefone.