Pagsisimula sa Java Native Interface (JNI)

Getting Started With Java Native Interface



Ang Java Native Interface, dinaglat na JNI, ay isang interface ng programa na hinahayaan ang mga developer ng Java na magpatakbo ng mga code at snippet mula sa iba pang mga wika ng programa sa Java. Dumating ito kasama ang mahahalagang Java Software Development Kit, o SDK (tatalakayin namin iyon sa ibang tutorial).

Ang JNI ay iginagalang din para sa tampok na ito upang tumawag sa API upang makalusot sa isang Java Virtual machine sa mga application ng Java. Nagbibigay-daan ito sa mga dev na tawagan ang java code sa loob ng code ng katutubong application.







Kung gumugol ka ng ilang oras sa pagtatrabaho kasama ang java, marahil ay napag-alaman mo ang maraming mga isyu sa pagganap na hindi maiwasang dumating sa iyo. Hindi ito isang problema kapag nagpatakbo ka ng parehong code sa katutubong wika, na maaaring gumanap nang higit sa labing walong beses nang mas mabilis kapag nabasa sa isang naipong modelo. Bilang karagdagan sa na, maaari mo ring gamitin ang hindi napapanahon / hindi tugma na mga gawain sa hardware sa mga katutubong code sa ibang mga wika.



Ipapakita ng tutorial na ito kung paano maaaring tawagan ang machine C / C ++ code mula sa loob ng isang java application.



Mga Pangangailangan

Kakailanganin mo ang ilang mga bagay upang masundan nang maayos ang gabay na ito. Kasama rito ang Java compiler, o Javac.exe, kasama ang JVM, pati na rin ang katutubong pamamaraan na C generator (javah.exe). Ang lahat ng tatlong mga ito ay nabuo sa software development kit, kaya't lahat kayo ay mabuti kung mayroon ka niyan. Bukod sa tatlong ito, kakailanganin mo rin ang mga file na tumutukoy sa JNI, kabilang ang mga Native header file at kumpletong mga file sa library.





At syempre, sa isang tutorial tungkol sa pagpapatakbo ng mga C at C ++ code, gagamitin din namin ang C compiler upang lumikha ng isang nakabahaging library.

Mga Bahagi ng JNI

Ang JNI ay pangunahing hinihimok ng dalawang bahagi, lalo ang h at javah. Ang H ay ang sangkap ng header file na pumapalit sa mga katutubong code ng java code, samantalang ginagawa ito ng Javah upang ang file na ito ay ma-load sa mga file ng header ng app nang mag-isa.



Inilahad ang C / C ++ mula sa Java code

Hakbang 1: Pagsulat ng code sa Java

Ang code ay unang isinulat sa java at sumusunod sa tatlong mga kundisyon. Una, nakasulat ito gamit ang katutubong pamamaraan upang maipatawag sa ibang pagkakataon. Pangalawa, kailangan nitong i-load ang nakabahaging silid-aklatan kung saan bahagi ang katutubong code, at panghuli, kailangan nitong ipataw ang mga katutubong pamamaraan.

Gamitin natin ang code na ito upang ilarawan ang karagdagang:

Mga linya ng paunawa 3 at 6; ito ang mga linya kung saan kasama ang mga katutubong pamamaraan. Ang code na naglo-load ng mga nakabahaging aklatan ay matatagpuan sa linya 10, na hahantong sa pamamaraang tinawag sa pagitan ng mga linya 12 hanggang 15.

Hakbang 2: Pagbuo ng java code sa bytecode

Ang ikalawang hakbang ay may kinalaman sa pag-iipon ng java code. Ang javac compiler ay maaaring gawin ang trabaho dito para sa amin; ilabas lamang ang utos sa ibaba:

$ javac Halimbawa1.java

Hakbang 3: Lumikha ng mga file ng header ng C / C ++

Susunod, kailangang likhain ang mga file ng header ng katutubong wika. Pinapagana ng file ng header na ito ang mga lagda ng mga katutubong code.

Ang mga file ng header na ito ay maaaring malikha gamit ang katutubong tool ng javah, isang generator ng C straw na kasama ng SDK, gamit ang sumusunod na utos:

javah Halimbawa1

Ang sumusunod na output ay dapat bumalik:

Hakbang 4: Pagsulat ng katutubong code

Dito kami magsusulat ng C / C ++ code. Dapat mong tandaan ang lahat ng mga lagda na kailangang maging katulad ng mga deklarasyon na ginawa namin sa hakbang 1.

Ang sumusunod ay isang pagpapatupad na nakasulat sa wikang C:

Hakbang 5: Lumikha ng isang nakabahaging library

Ang isang nakabahaging silid-aklatan ay maaaring malikha gamit ang anumang tagatala. Dahil naglalaman ang nakabahaging library ng katutubong code, magkakaroon kami ng lumikha ng isa.

Hakbang 6: Ilunsad ang iyong programa

Ang hakbang na ito ay nagsasangkot ng pagtatasa ng code at pagkilala ng anumang mga problema sa programa. Isasangkot nito ang kapaligiran ng runtime ng Java dahil ang code ay isasagawa sa JVM lalo na.

Isyu ang sumusunod na utos:

java Halimbawa1

Dapat itong bumalik:

Kaya't iyon ang gabay ng aming maikling nagsisimula sa paggamit ng Java Native Interface. Inaasahan namin na nasumpungan mo itong kapaki-pakinabang.

Ang pag-aaral kung paano gumana sa JNI ay mahalaga para sa sinumang nais na bumuo ng mga application ng Java, lalo na ang mga android application para sa mga smartphone.