Komme i gang med Java Native Interface (JNI)

Getting Started With Java Native Interface



Java Native Interface, forkortet JNI, er et programmeringsgrensesnitt som lar Java -utviklere kjøre koder og utdrag fra andre programmeringsspråk i Java. Den kommer kombinert med det viktige Java Software Development Kit, eller SDK (vi dekker det i en annen opplæring).

JNI er også æret for sin funksjon for å kalle API for å snike seg inn i en virtuell Java -maskin i Java -applikasjoner. Dette gjør at devs kan påkalle java -koden i koden til den opprinnelige applikasjonen.







Hvis du har brukt litt tid på å jobbe med java, har du sannsynligvis allerede støtt på de mange ytelsesproblemene som uunngåelig kommer din vei. Dette er ikke et problem når du kjører den samme koden på morsmålet, som kan utføre over atten ganger raskere når den leses i en kompilert modell. I tillegg til det kan du også bruke utdaterte/inkompatible maskinvarerutiner med innfødte koder på andre språk.



Denne opplæringen vil demonstrere hvordan maskinens C/C ++ - kode kan påkalles fra en java -applikasjon.



Forutsetninger

Du kommer til å trenge et par ting for å følge opp med denne guiden riktig. Disse inkluderer Java -kompilatoren, eller Javac.exe, sammen med JVM, så vel som den opprinnelige metoden C -generatoren (javah.exe). Alle disse tre er innebygd i programvareutviklingssettet, så du har det bra hvis du har det. I tillegg til disse tre trenger du også filene som definerer JNI, inkludert native header -filer og komplette bibliotekfiler.





Og selvfølgelig, i en opplæring om hvordan du kjører C- og C ++ -kodene, bruker vi også C -kompilatoren til å lage et delt bibliotek.

JNI -komponenter

JNI er hovedsakelig drevet av to komponenter, nemlig h og javah. H er overskriftsfilkomponenten som erstatter opprinnelige koder med java -kode, mens Javah gjør det slik at denne filen kan lastes til apphodefiler av seg selv.



Påkaller C/C ++ fra Java -kode

Trinn 1: Skrive koden i Java

Koden skrives først i java og er i samsvar med tre betingelser. Først er det skrevet med den opprinnelige metoden som skal påkalles senere. For det andre må den laste det delte biblioteket som den opprinnelige koden er en del av, og til slutt må den påkalle de opprinnelige metodene.

La oss bruke denne koden til å illustrere ytterligere:

Legg merke til linje 3 og 6; Dette er linjene der de opprinnelige metodene er inkludert. Koden som laster de delte bibliotekene er plassert på linje 10, noe som fører til at metoden blir påkalt mellom linjene 12 til 15.

Trinn 2: Kompilere java -koden til bytecode

Det andre trinnet har å gjøre med å kompilere java -koden. Javac -kompilatoren kan gjøre jobben her for oss; bare gi kommandoen nedenfor:

$ javac Eksempel 1.java

Trinn 3: Lag C/C ++ topptekster

Deretter må overskriftsfiler for morsmålet opprettes. Denne topptekstfilene driver signaturene til de opprinnelige kodene.

Disse toppfilene kan opprettes med det native Java -verktøyet, en C -stubgenerator som følger med SDK, ved å bruke følgende kommando:

javah Eksempel 1

Følgende utgang skal returnere:

Trinn 4: Skrive den opprinnelige koden

Det er her vi skriver C/C ++ - kode. Du bør merke alle signaturene som må ligne erklæringene vi ga i trinn 1.

Følgende er en implementering skrevet på C -språk:

Trinn 5: Lag et delt bibliotek

Et delt bibliotek kan opprettes med hvilken som helst kompilator. Fordi det delte biblioteket inneholder den opprinnelige koden, må vi lage en.

Trinn 6: Start programmet

Dette trinnet innebærer å vurdere koden og identifisere eventuelle problemer med programmet. Dette kommer til å involvere Java -runtime -miljøet fordi koden først og fremst skal kjøres i JVM.

Gi følgende kommando:

java Eksempel 1

Den skal returnere:

Så det var vår korte nybegynnerguide for bruk av Java Native Interface. Vi håper du har funnet det nyttig.

Lære å jobbe med JNI er avgjørende for alle som ønsker å utvikle Java -applikasjoner, spesielt android -applikasjoner for smarttelefoner.