Maison > Java > javaDidacticiel > le corps du texte

Introduction à l'utilisation simple de JNI en java (détails)

不言
Libérer: 2018-10-10 11:53:09
avant
4482 Les gens l'ont consulté

Cet article vous apporte une introduction simple à l'utilisation de JNI (détaillée). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

JNI nous permet d'appeler les fonctions des bibliothèques locales en code java.

Ce qui suit est un enregistrement de l'utilisation simple de JNI

1 Créez une interface Java

public class JNIIterface {
    // 导入最终生成的dll文件
    static {
        System.loadLibrary("JNIDemo");
    }

    // 声明dll文件中实现的接口
    public native int MyMethod();
    
    public native int add(int x, int y);
}
Copier après la connexion

2 Générez le fichier d'en-tête C correspondant à l'interface<. 🎜>

La classe JNIIterface créée ci-dessus, le chemin du fichier JNIIterface .class : JNIDemobinbaseJNIIterface .class

Exécutez la commande dans le répertoire bin du répertoire du projet : javah -classpath -jni base.JNIIterface .

Ensuite, le fichier base_JNIIterface.h sera généré dans le répertoire JNIDemobin

3. Utilisez Visual Studio pour écrire l'implémentation de l'interface

pour créer un projet C. les étapes spécifiques sont les suivantes :

Étape 1 :

Étape 2 :

Étape 3 :

Importez les fichiers d'en-tête requis

Le fichier d'en-tête généré à la deuxième étape ci-dessus, ainsi que jni.h dans le répertoire include du jdk répertoire racine et jni_md dans le répertoire win32 de

fichier include.h dans le répertoire du fichier d'en-tête dans le répertoire du projet

Créez le fichier d'implémentation de la fonction

Cliquez avec le bouton droit sur le source dans le répertoire du projet et cliquez sur Add-》Class

et écrivez le code suivant :

#include "base_JNIIterface.h"
#include "jni.h"
#include <stdio.h>

JNIEXPORT jint JNICALL Java_base_JNIIterface_MyMethod
  (JNIEnv *, jobject){
      printf("成功实现JNI测试DEMO");
      return 0;
}

JNIEXPORT jint JNICALL Java_base_JNIIterface_add
  (JNIEnv *, jobject, jint a, jint b){
      return a + b;
}
Copier après la connexion
4. Générez le fichier dll <🎜. >

Cliquez avec le bouton droit sur "Solution" dans le répertoire du projet, sélectionnez Propriétés, puis comme suit Le projet montré dans l'image est composé de

puis après en compilant le projet, il sera converti en fichier dll

dans le répertoire Release du répertoire du projet 5. Configurez le fichier dll dans le projet java

<. 🎜>Placez d'abord le fichier dll dans le répertoire lib sous le répertoire racine du projet java

Suivez ensuite les étapes ci-dessous pour ajouter le fichier dll en tant que bibliothèque native Entrez le projet

Modifiez l'emplacement de la bibliothèque native indiqué dans l'image ci-dessus, puis sélectionnez le dossier où se trouve la bibliothèque native dans l'interface contextuelle :

6. Écrivez une classe de test pour vérifier si JNI est appliqué avec succès. classe publique HelloJNI {


Les résultats du test après l'exécution sont les suivants :

    public static void main(String[] args) {
        JNIIterface hw = new JNIIterface();
        int t = hw.add(3, 7);
        int s = hw.MyMethod();
        System.out.println(t);
        System.out.println(s);
    }
}
Copier après la connexion

Au-dessus enregistre simplement les étapes les plus élémentaires de l'utilisation de JNI.

0
0
成功??JNI??DEMO
Copier après la connexion
Une exploration approfondie est encore nécessaire sur la manière d'utiliser les fonctions des fichiers dll tiers qui ont été écrits, tels que les fichiers dll système.

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!

Étiquettes associées:
jni
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!