Komme i gang med Java Native Interface

Komme i gang med 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. Det leveres kombinert med Essential Java Software Development Kit, eller SDK (vi dekker det i en annen tutorial).

JNI er også æret for at funksjonen skal ringe API for å snike seg inn i en virtuell Java i Java -applikasjoner. Dette gjør det mulig for Devs å påkalle Java -koden i koden til den opprinnelige applikasjonen.

Hvis du har brukt litt tid på å jobbe med Java, har du sannsynligvis allerede kommet over 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 prestere over atten ganger raskere når du 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 maskinen C/C ++ kode kan påberopes fra en Java -applikasjon.

Forutsetninger

Du trenger noen få ting å følge med denne guiden ordentlig. Disse inkluderer Java -kompilatoren, eller Javac.EXE, sammen med JVM, så vel som den innfødte metoden C -generatoren (Javah.EXE). Alle disse tre kommer innebygd i programvareutviklingssettet, så du er bra hvis du har det. Foruten disse tre, trenger du også filene som definerer JNI, inkludert naturlige overskriftsfiler og komplette bibliotekfiler.

Og selvfølgelig, i en veiledning om å kjøre C- og C ++ -kodene, bruker vi også C -kompilatoren til å opprette et delt bibliotek.

JNI -komponenter

JNI er hovedsakelig drevet av to komponenter, nemlig H og Javah. H er overskriftsfilkomponenten som erstatter native koder med Java -kode, mens Javah gjør det slik at denne filen kan lastes til app -overskriftsfiler av seg selv.

Påkalle C/C ++ fra Java Code

Trinn 1: Skrive koden i Java

Koden er først skrevet i Java og er i samsvar med tre forhold. Først er det skrevet med den opprinnelige metoden som skal påberopes senere. For det andre må den laste inn det delte biblioteket som den innfødte koden er en del av, og til slutt må den påkalle de opprinnelige metodene.

La oss bruke denne koden for å illustrere videre:

Varslingslinjene 3 og 6; Dette er linjene der de innfødte 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: Samarbeid Java -koden til Bytecode

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

$ Javac Eksempel1.Java

Trinn 3: Opprett C/C ++ overskriftsfiler

Deretter må morsopptektsfilene opprettes. Denne overskriften filer styrker signaturene til de opprinnelige kodene.

Disse overskriftsfilene kan opprettes med Javah Native Tool, en C Stub -generator med SDK, ved hjelp av følgende kommando:

Javah Eksempel1

Følgende utgang skal returnere:

Trinn 4: Skrive den opprinnelige koden

Det er her vi skriver C/C ++ kode. Du bør merke deg alle underskriftene som må ligne erklæringen vi har gjort i trinn 1.

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

Trinn 5: Opprett et delt bibliotek

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

Trinn 6: Start programmet ditt

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 kommer til å utføre i JVM.

Utsted følgende kommando:

Java Eksempel1

Det skal komme tilbake:

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

Å lære å jobbe med JNI er viktig for alle som ønsker å utvikle Java -applikasjoner, spesielt Android -applikasjoner for smarttelefoner.