Introducere privind cuvântul cheie nativ:
Limbajul cheie nativ acționează ca o legătură între limbajul JAVA și o bucată de cod sau o bibliotecă scrisă în diferite limbaje, cu excepția JAVA, care poate depinde de mașina pe care se operează. În cazul în care cuvântul cheie nativ este aplicat unei metode, înseamnă că metoda va fi implementată folosind cod nativ scris într-un alt limbaj (cum ar fi C sau C++) prin intermediul JNI (JAVA native interface).
Sintaxa:
Sintaxa codului nativ este aceeași cu cea a definiției normale a funcției, cu adăugarea cuvântului cheie „nativ” la începutul funcției.
De exemplu:
Clasa Publică teste
{public nativ String nativ TestMethod (String parameter);}
Aici public este un modificator de acces. Ar trebui să fie public, astfel încât un alt fișier să îl poată utiliza. String este tipul de date de retur al funcției. Acesta poate fi întreg, caracter sau boolean în funcție de cuvântul cheie. Parametrul transmis acestei funcții este, de asemenea, de tipul de date string. Totul ar trebui să fie păstrat în cadrul clasei.
După declararea funcției, apelăm această funcție prin intermediul obiectului creat și al bibliotecii încărcate.
public static void main(String args)
{
System.loadLibrary(„testing”);
testing testingnew = new testing();
String output = testingnew.stringMethod(„NATIVE”);
}
Biblioteca definită mai sus ar trebui să fie încărcată mai întâi și apoi n se creează obiectul său. Cu ajutorul acestui obiect , funcția nativă este apelată.
Cum funcționează cuvântul cheie nativ?
Ar trebui să existe două fișiere. Unul care să conțină codul JAVA, în timp ce celălalt ar trebui să aibă codul moștenit C/C++. Codul Java va fi utilizat pentru a apela codul moștenit. Acest cod moștenit va interacționa cu hardware-ul și va returna rezultatul așteptat.
Când codul moștenit interacționează cu hardware-ul, atunci acesta nu va respecta liniile directoare stabilite de JAVA. Acest cod va face procesarea dorită pentru a obține ieșirea și va transmite rezultatele către JNI. Interfața nativă Java va verifica apoi în directorul său care conține toate regulile referitoare la codul nativ (Acesta se află în fișierul numit javah.exe din SDK). JNI este concepută ca parte a setului de instrumente Java. După această procesare, JAVA va publica rezultatele chiar în limbajul JAVA. Atunci când creăm un program în JAVA, atunci trebuie să ne asigurăm că există o legătură de flux de date/variabile între fișierul JAVA și fișierul moștenit, astfel încât să existe un flux de date fluent între ambele.
Pasii care explică modul de utilizare a cuvintelor cheie native sunt prezentați mai jos:
- Scrieți codul JAVA care conține metoda nativă, biblioteca partajată încărcată și salvați-l folosind „filename.JAVA”.
- Compilați codul JAVA și convertiți codul în bytecode.
- Creați fișierul de antet C/C++ care conține semnătura funcției native care trebuie apelată.
- Scrieți codul C/C++ care conține implementarea metodei native.
- Executați fișierul executabil JAVA pentru a vedea rezultatele.
Exemple pentru a arăta implementarea cuvântului cheie nativ:
Ar trebui să scriem codul în Eclipse și să rulăm codul pentru a crea o bibliotecă cu ajutorul căreia apoi va fi implementat codul C.
Cod: pachet com.slackerOne;
public class JPP {
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static{
System.loadLibrary(„JPPlibs”);
}
public void jAccess(){
JPP.pAccess();
}
public int jRead(){
return JPP.pRead();
}
public void jWrite(int port, int output){
JPP.pWrite(port, output);
}
}
După salvarea acestui cod în noua „clasă” din proiectul java. Trebuie să configurăm mediul de execuție pentru a genera fișierul de antet.
Când vom rula acest lucru, ar trebui să obținem o bibliotecă generată.
Ieșire:
Aici am creat fișierul de antet din codul java care va acționa ca o legătură între codul nativ și limbajul java.