Kom godt i gang med Java Native Interface (JNI)

Getting Started With Java Native Interface



Java Native Interface, forkortet JNI, er en programmeringsgrænseflade, der lader Java -udviklere køre koder og uddrag fra andre programmeringssprog i Java. Det leveres kombineret med det essentielle Java Software Development Kit eller SDK (vi dækker det i en anden vejledning).

JNI er også æret for sin funktion til at opfordre API til at snige sig ind i en virtuel Java -maskine i Java -applikationer. Dette gør det muligt for devs at påberåbe sig java -koden inden for koden til den native applikation.







Hvis du har brugt noget tid på at arbejde med java, er du sandsynligvis allerede stødt på de mange ydelsesproblemer, der uundgåeligt kommer din vej. Dette er ikke et problem, når du kører den samme kode på modersmålet, som kan fungere over atten gange hurtigere, når den læses i en kompileret model. Ud over det kan du også bruge forældede/inkompatible hardware -rutiner med native -koder på andre sprog.



Denne vejledning vil demonstrere, hvordan maskinens C/C ++ - kode kan påberåbes fra en java -applikation.



Forudsætninger

Du får brug for et par ting for at følge denne vejledning ordentligt igennem. Disse inkluderer Java -kompilatoren eller Javac.exe sammen med JVM samt den native metode C -generator (javah.exe). Alle tre af disse er indbygget i softwareudviklingssættet, så du har det godt, hvis du har det. Udover disse tre har du også brug for de filer, der definerer JNI, herunder native header -filer og komplette biblioteksfiler.





Og selvfølgelig vil vi i en tutorial om at køre C- og C ++ -koderne også bruge C -kompilatoren til at oprette et delt bibliotek.

JNI -komponenter

JNI er hovedsageligt drevet af to komponenter, nemlig h og javah. H er header -filkomponenten, der erstatter native -koder med java -kode, hvorimod Javah gør det sådan, at denne fil kan indlæses i app -header -filer af sig selv.



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

Trin 1: Skrivning af koden i Java

Koden skrives først i java og er i overensstemmelse med tre betingelser. For det første er det skrevet med den native metode, der senere skal påberåbes. For det andet skal den indlæse det delte bibliotek, som den indfødte kode er en del af, og endelig skal den påberåbe de indfødte metoder.

Lad os bruge denne kode til at illustrere yderligere:

Bemærk linje 3 og 6; det er de linjer, hvor de native metoder er inkluderet. Koden, der indlæser de delte biblioteker, er placeret på linje 10, hvilket fører til, at metoden påberåbes mellem linjer 12 til 15.

Trin 2: Kompilering af java -koden til bytecode

Det andet trin har at gøre med at kompilere java -koden. Javac -kompilatoren kan gøre jobbet her for os; udsted bare kommandoen herunder:

$ javac Eksempel 1.java

Trin 3: Opret C/C ++ header -filer

Dernæst skal overskriftsfiler til modersmål oprettes. Denne header -filer driver signaturerne af de native koder.

Disse header -filer kan oprettes med det native javah -værktøj, en C -stubgenerator sammen med SDK, ved hjælp af følgende kommando:

javah Eksempel 1

Følgende output skal returnere:

Trin 4: Skrivning af den oprindelige kode

Det er her, vi skriver C/C ++ kode. Du skal notere alle underskrifter, der skal ligne de erklæringer, vi afgav i trin 1.

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

Trin 5: Opret et delt bibliotek

Et delt bibliotek kan oprettes med enhver kompiler. Fordi det delte bibliotek indeholder den oprindelige kode, bliver vi nødt til at oprette en.

Trin 6: Start dit program

Dette trin indebærer at vurdere koden og identificere eventuelle problemer med programmet. Dette kommer til at involvere Java -runtime -miljøet, fordi koden primært vil blive udført i JVM.

Udfør følgende kommando:

java Eksempel 1

Det skal returnere:

Så det var vores korte begyndervejledning til brug af Java Native Interface. Vi håber, at du har fundet det nyttigt.

At lære at arbejde med JNI er afgørende for alle, der ønsker at udvikle Java -applikationer, især Android -applikationer til smartphones.