Le mot-clé natif fait office de lien entre le langage JAVA et un bout de code ou une bibliothèque écrite dans des langages différents à l'exception de JAVA, qui peut dépendre de la machine sur laquelle vous travaillez. Si le mot-clé natif est appliqué à une méthode, cela signifie que la méthode sera implémentée en utilisant du code natif écrit dans un autre langage (comme C ou C++) via JNI (interface native JAVA).
La syntaxe du code natif est la même que la définition normale de la fonction, avec le mot-clé « natif » ajouté au début de la fonction.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Par exemple :
public class testing {public native String testMethod (String parameter);}
Ici, le public est un modificateur d'accès. Il doit être public pour qu'un autre fichier puisse l'utiliser. La chaîne est le type de données de retour de la fonction. Il peut s'agir d'un entier, d'un caractère ou d'un booléen selon le mot-clé. Le paramètre transmis à cette fonction est également du type de données chaîne. Tout devrait rester sous la classe.
Après la déclaration de la fonction, nous appelons cette fonction via l'objet créé et la bibliothèque chargée.
public static void main(String[] args) { System.loadLibrary("testing"); testing testingnew = new testing(); String output = testingnew.stringMethod("NATIVE"); }
La bibliothèque définie ci-dessus doit être chargée en premier, et son objet est créé. A l'aide de cet objet, la fonction native est appelée.
Il devrait y avoir deux fichiers. L’un contient du code JAVA, tandis que l’autre doit avoir du code hérité C/C++. Le code Java sera utilisé pour appeler le code existant. Cet ancien code interagira avec le matériel et renverra le résultat attendu.
Lorsque le code existant interagit avec le matériel, il ne suivra pas les directives établies par JAVA. Ce code effectuera le traitement souhaité pour obtenir le résultat et transmettre les résultats à JNI. L'interface native Java vérifiera alors dans son répertoire contenant toutes les règles relatives au code natif (cela relève d'un fichier appelé javah.exe dans le SDK). JNI est conçu dans le cadre de la boîte à outils Java. Après ce traitement, JAVA publiera lui-même les sorties dans le langage JAVA. Lorsque nous créons le programme JAVA, nous devons nous assurer qu'il existe un lien de variable/flux de données entre le fichier JAVA et le fichier hérité afin qu'il y ait un flux de données fluide entre les deux.
Les étapes expliquant comment utiliser des mots-clés natifs sont indiquées ci-dessous :
Nous devrions écrire du code dans Eclipse et exécuter le code pour créer une bibliothèque à l'aide de laquelle le code C sera ensuite implémenté.
Code : package 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); } }
Après avoir enregistré ce code dans la nouvelle « classe » du projet java, nous devons mettre en place un environnement d'exécution pour générer un fichier d'en-tête.
Lorsque nous exécuterons ceci, nous devrions générer une bibliothèque.
Sortie :
Ici, nous avons créé le fichier d'en-tête à partir du code java, qui reliera le code natif et le langage java.
Vous trouverez ci-dessous quelques-uns des avantages.
Les règles pour un mot-clé natif sont les suivantes.
Le mot-clé natif comble le fossé entre les langues natives et JAVA. Cela peut être utilisé comme lien critique si l’interaction de notre logiciel avec le matériel est plus efficace dans l’utilisation du code préexistant. Cela réduit le travail de mise en œuvre par rapport à la conception d'un nouveau code d'application à partir de zéro partout où cela pourrait être évité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!