Début avec l'interface native Java

Début avec l'interface native Java
L'interface native Java, Abréviée JNI, est une interface de programmation qui permet aux développeurs Java d'exécuter des codes et des extraits à partir d'autres langages de programmation de Java. Il est associé au kit de développement de logiciel Java essentiel, ou SDK (nous le couvrirons dans un tutoriel différent).

JNI est également vénéré pour que sa fonctionnalité appelle l'API à se faufiler dans une machine virtuelle Java dans les applications Java. Cela permet aux développeurs d'invoquer le code Java dans le code de l'application native.

Si vous avez passé un peu de temps à travailler avec Java, vous avez probablement déjà rencontré les nombreux problèmes de performances qui viennent inévitablement à votre rencontre. Ce n'est pas un problème lorsque vous exécutez le même code dans la langue maternelle, qui peut fonctionner plus de dix-huit fois plus vite lors de la lecture dans un modèle compilé. En plus de cela, vous pouvez également utiliser des routines matérielles obsolètes / incompatibles avec des codes natifs dans d'autres langues.

Ce tutoriel montrera comment le code machine C / C ++ peut être invoqué à partir d'une application Java.

Conditions préalables

Vous allez avoir besoin de quelques choses à suivre correctement ce guide. Il s'agit notamment du compilateur Java, ou Javac.EXE, avec le JVM, ainsi que le générateur de méthode native (Javah.exe). Ces trois sont intégrés dans le kit de développement de logiciels, donc vous êtes tout bon si vous avez cela. Outre ces trois, vous aurez également besoin des fichiers qui définissent JNI, y compris les fichiers d'en-tête natifs et les fichiers de bibliothèque complets.

Et bien sûr, dans un tutoriel sur l'exécution des codes C et C ++, nous utiliserons également le compilateur C pour créer une bibliothèque partagée.

Composants JNI

JNI est principalement entraîné par deux composants, à savoir H et Javah. H est le composant de fichier d'en-tête qui remplace les codes natifs par le code Java, tandis que Javah le fait pour que ce fichier puisse être chargé pour appliquer les fichiers d'en-tête seuls.

Invoquer C / C ++ du code Java

Étape 1: Écriture du code en java

Le code est d'abord écrit en Java et est conforme à trois conditions. Tout d'abord, il est écrit avec la méthode native à invoquer plus tard. Deuxièmement, il doit charger la bibliothèque partagée dont le code natif fait partie, et enfin, il doit invoquer les méthodes natives.

Utilisons ce code pour illustrer davantage:

Avis les lignes 3 et 6; Ce sont les lignes où les méthodes natives sont incluses. Le code qui charge les bibliothèques partagées est située sur la ligne 10, ce qui conduit à la méthode invoquée entre les lignes 12 à 15.

Étape 2: Compilation du code Java en bytecode

La deuxième étape a à voir avec la compilation du code Java. Le compilateur Javac peut faire le travail ici pour nous; Il suffit de délivrer la commande ci-dessous:

$ javac example1.Java

Étape 3: Créez des fichiers d'en-tête C / C ++

Ensuite, les fichiers d'en-tête de langue maternelle doivent être créés. Ce fichier d'en-tête alimente les signatures des codes natifs.

Ces fichiers d'en-tête peuvent être créés avec l'outil natif Javah, un générateur C C regorgeant de SDK, en utilisant la commande suivante:

Javah Exemple1

La sortie suivante doit retourner:

Étape 4: Écriture du code natif

C'est là que nous écrirons le code C / C ++. Vous devez noter toutes les signatures qui doivent ressembler aux déclarations que nous avons faites à l'étape 1.

Voici une implémentation écrite en langue C:

Étape 5: Créez une bibliothèque partagée

Une bibliothèque partagée peut être créée avec n'importe quel compilateur. Parce que la bibliothèque partagée contient le code natif, nous devrons en créer un.

Étape 6: Lancez votre programme

Cette étape consiste à évaluer le code et à identifier tout problème avec le programme. Cela va impliquer l'environnement d'exécution Java car le code va s'exécuter dans JVM principalement.

Émettez la commande suivante:

Java Exemple1

Il doit revenir:

C'était donc notre court guide pour débutant pour utiliser l'interface native Java. Nous espérons que vous l'avez trouvé utile.

Apprendre à travailler avec JNI est essentiel pour quiconque souhaite développer des applications Java, en particulier les applications Android pour les smartphones.