Darbo su „Java“ vietine sąsaja (JNI) pradžia

Getting Started With Java Native Interface



„Java Native Interface“, sutrumpintai JNI, yra programavimo sąsaja, leidžianti „Java“ kūrėjams paleisti kodus ir fragmentus iš kitų „Java“ programavimo kalbų. Jis pateikiamas kartu su pagrindiniu „Java“ programinės įrangos kūrimo rinkiniu arba SDK (tai aptarsime kitoje pamokoje).

JNI taip pat gerbiama dėl savo ypatybės, leidžiančios sukviesti API į „Java“ virtualią mašiną „Java“ programose. Tai leidžia kūrėjams iškviesti „Java“ kodą pagal savosios programos kodą.





Jei praleidote šiek tiek laiko dirbdami su java, tikriausiai jau susidūrėte su daugeliu neišvengiamai iškylančių našumo problemų. Tai nėra problema, kai paleidžiate tą patį kodą gimtąja kalba, kuri gali veikti daugiau nei aštuoniolika kartų greičiau, kai skaitoma pagal sudarytą modelį. Be to, taip pat galite naudoti pasenusias/nesuderinamas aparatūros procedūras su vietiniais kodais kitomis kalbomis.



Ši pamoka parodys, kaip mašinos C/C ++ kodą galima iškviesti iš „Java“ programos.



Būtinos sąlygos

Jums reikės kelių dalykų, kad tinkamai atliktumėte šį vadovą. Tai apima „Java“ kompiliatorių arba „Javac.exe“ kartu su JVM, taip pat savąjį metodo C generatorių (javah.exe). Visi šie trys yra integruoti į programinės įrangos kūrimo rinkinį, todėl jums viskas gerai, jei tai turite. Be šių trijų, jums taip pat reikės failų, apibrėžiančių JNI, įskaitant vietinių antraščių failus ir užbaigtus bibliotekos failus.





Ir, žinoma, mokydamiesi apie C ir C ++ kodų vykdymą, mes taip pat naudosime C kompiliatorių bendrai bibliotekai sukurti.

JNI komponentai

JNI daugiausia lemia du komponentai, būtent h ir javah. H yra antraštės failo komponentas, kuris pakeičia gimtuosius kodus „Java“ kodu, o „Javah“ leidžia taip, kad šį failą būtų galima įkelti į programos antraštės failus.



C/C ++ iškvietimas iš „Java“ kodo

1 veiksmas: kodo rašymas „Java“

Kodas pirmiausia parašytas java ir atitinka tris sąlygas. Pirma, jis parašytas naudojant gimtąjį metodą, kuris bus naudojamas vėliau. Antra, ji turi įkelti bendrinamą biblioteką, kurios dalis yra savasis kodas, ir galiausiai turi iškviesti vietinius metodus.

Toliau iliustruokime šį kodą:

3 ir 6 eilutės; tai yra eilutės, kuriose yra vietinių metodų. Kodas, kuriuo įkeliamos bendrinamos bibliotekos, yra 10 eilutėje, todėl metodas iškviečiamas tarp 12–15 eilučių.

2 žingsnis: „Java“ kodo kompiliavimas į baitų kodą

Antrasis žingsnis yra susijęs su „Java“ kodo sudarymu. „Java“ kompiliatorius gali atlikti šį darbą už mus; tiesiog paleiskite žemiau pateiktą komandą:

$ javac 1 pavyzdys.java

3 veiksmas: sukurkite C/C ++ antraštės failus

Tada reikia sukurti gimtosios kalbos antraštės failus. Šios antraštės failai įgalina savųjų kodų parašus.

Šiuos antraštės failus galima sukurti naudojant „javah“ vietinį įrankį, C stubų generatorių, sujungtą su SDK, naudojant šią komandą:

javah 1 pavyzdys

Turėtų grįžti ši išvestis:

4 žingsnis: rašykite savąjį kodą

Čia mes parašysime C/C ++ kodą. Turėtumėte atkreipti dėmesį į visus parašus, kurie turi būti panašūs į 1 žingsnyje padarytas deklaracijas.

Toliau pateikiamas įgyvendinimas, parašytas C kalba:

5 veiksmas: sukurkite bendrinamą biblioteką

Bendrą biblioteką galima sukurti naudojant bet kurį kompiliatorių. Kadangi bendrinamoje bibliotekoje yra savasis kodas, turėsime jį sukurti.

6 veiksmas: paleiskite programą

Šis žingsnis apima kodo įvertinimą ir visų su programa susijusių problemų nustatymą. Tai apims „Java“ vykdymo aplinkos aplinką, nes kodas pirmiausia bus vykdomas JVM.

Išduokite šią komandą:

java 1 pavyzdys

Turėtų grįžti:

Taigi tai buvo mūsų trumpas pradedančiųjų „Java“ gimtosios sąsajos naudojimo vadovas. Tikimės, kad jums tai buvo naudinga.

Išmokti dirbti su JNI būtina visiems, norintiems kurti „Java“ programas, ypač „Android“ programas išmaniesiems telefonams.