Maison  >  Article  >  Java  >  Introduction à l'utilisation simple de JNI en java (détails)

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

不言
不言avant
2018-10-10 11:53:104487parcourir

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);
}

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;
}
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);
    }
}

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

0
0
成功??JNI??DEMO
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer