Začetek uporabe Java Native Interface (JNI)

Getting Started With Java Native Interface



Java Native Interface, skrajšano JNI, je programski vmesnik, ki razvijalcem Java omogoča izvajanje kod in izrezkov iz drugih programskih jezikov v Javi. Na voljo je skupaj z bistvenim kompletom za razvoj programske opreme Java ali SDK (o tem bomo govorili v drugi vadnici).

JNI je cenjen tudi zaradi svoje funkcije, da pokliče API, da se prikrade v virtualni stroj Java v aplikacijah Java. To omogoča razvijalcem, da prikličejo kodo java v kodi izvorne aplikacije.







Če ste nekaj časa delali z javo, ste verjetno že naleteli na številna vprašanja glede učinkovitosti, ki se vam neizogibno pojavijo. To ni problem, če zaženete isto kodo v maternem jeziku, ki lahko deluje več kot osemnajstkrat hitreje, če jo preberete v sestavljenem modelu. Poleg tega lahko uporabite tudi zastarele/nezdružljive strojne rutine z izvornimi kodami v drugih jezikih.



Ta vadnica bo pokazala, kako lahko strojno kodo C/C ++ prikličete iz aplikacije java.



Predpogoji

S tem priročnikom boste morali upoštevati nekaj stvari. Ti vključujejo prevajalnik Java ali Javac.exe skupaj z JVM, pa tudi izvorni generator C metode (javah.exe). Vsi trije so vgrajeni v komplet za razvoj programske opreme, zato ste vsi v redu, če to imate. Poleg teh treh boste potrebovali tudi datoteke, ki definirajo JNI, vključno z izvornimi datotekami glave in celotnimi datotekami knjižnice.





Seveda bomo v vadnici o izvajanju kod C in C ++ uporabili tudi prevajalnik C za ustvarjanje knjižnice v skupni rabi.

Komponente JNI

JNI poganjata predvsem dve komponenti, in sicer h in javah. H je komponenta datoteke glave, ki nadomešča izvorne kode s kodo java, medtem ko Javah omogoča, da se ta datoteka sama naloži v datoteke z glavo aplikacije.



Klic C/C ++ iz kode Java

1. korak: Pisanje kode v Javi

Koda je najprej napisana v javi in ​​je skladna s tremi pogoji. Najprej je napisano z izvorno metodo, ki se bo pozneje pozvala. Drugič, naložiti mora knjižnico v skupni rabi, katere del je izvorna koda, in nazadnje mora priklicati izvorne metode.

Za ponazoritev uporabimo to kodo:

Vrstice obvestil 3 in 6; to so vrstice, kjer so vključene izvorne metode. Koda, ki naloži knjižnice v skupni rabi, se nahaja v vrstici 10, zaradi česar se metoda prikliče med vrsticami 12 do 15.

Korak: Prevedite kodo java v bajtko

Drugi korak je povezan s sestavljanjem kode java. Prevajalnik javac lahko tukaj opravi svoje delo; samo izdajte spodnji ukaz:

$ javac Primer1.java

3. korak: Ustvarite datoteke glave C/C ++

Nato je treba ustvariti datoteke z glavo domačega jezika. Te datoteke z glavo podpirajo podpise izvornih kod.

Te datoteke z glavo lahko ustvarite z domačim orodjem javah, generatorjem škrbin C, ki je priložen SDK, z naslednjim ukazom:

javah Primer1

Vrniti se mora naslednji izhod:

4. korak: Pisanje izvorne kode

Tu bomo napisali kodo C/C ++. Upoštevati morate vse podpise, ki morajo biti podobni izjavam, ki smo jih dali v 1. koraku.

Sledi izvedba, napisana v jeziku C:

5. korak: Ustvarite knjižnico v skupni rabi

Knjižnico v skupni rabi lahko ustvarite s katerim koli prevajalnikom. Ker knjižnica v skupni rabi vsebuje izvorno kodo, jo bomo morali ustvariti.

6. korak: Zaženite program

Ta korak vključuje oceno kode in ugotavljanje morebitnih težav s programom. To bo vključevalo okolje izvajanja Java, ker se bo koda izvajala predvsem v JVM.

Izdajte naslednji ukaz:

java Primer1

Vrniti bi se moralo:

To je bil torej naš kratek vodnik za začetnike pri uporabi vmesnika Java Native Interface. Upamo, da vam je bilo v pomoč.

Naučiti se delati z JNI je bistveno za vse, ki želijo razvijati aplikacije Java, zlasti aplikacije za android za pametne telefone.