L’appel de Code natif (DLL) à partir de Java à l’aide de JNI

RÉSUMÉ

Cet article détaille le processus d’appel du code C/C++ natif (dans une DLL) à partir de Java à l’aide de JNI (Java Native Interface). Cet article suppose une connaissance pratique du compilateur de ligne de commande Visual C++, CL. EXE

  • Assurez-vous que vous utilisez une version de Microsoft du SDK pour Java prenant en charge JNI. Prise en charge JNI a été ajouté en décembre 1998 à SDK version 3.1 et versions ultérieures.
  • Assurez-vous que la variable d’environnement CLASSPATH, contienne une référence à « [WINDIR]\Java\Classes\Classes.zip » et « C: » (en supposant que C: correspond à votre lecteur de développement).
  • Assurez-vous que votre répertoire « [SDK-Java] \Bin » est inclus dans votre chemin d’accès (pour JView, JVC et JavaH).
  • Assurez-vous que Visual C++ est correctement configuré pour l’utilisation de ligne de commande. Consultez la documentation de Visual C++ pour plus d’informations.
  • Écrivez votre code Java :
    public class TestJNI {   public native void greetings();   static {      System.loadLibrary("greet");   }   public static void main(String args[]) {      new TestJNI().greetings();   }}
  • Compilez le fichier Java :
    jvc TestJNI.java
  • Exécutez JavaH sur le fichier de classe généré :
    javah -jni TestJNI
  • Écrivez le code C/C++ basé sur le fichier d’en-tête généré :
    #include "TestJNI.h"#include <stdio.h>JNIEXPORT void JNICALL Java_TestJNI_greetings(JNIEnv *env,jobject jobj) {   printf("Hello from Visual C++!");}
  • Compilez le code C/C++ :
    cl greet.cpp -Ic:\sdk-java.31\include -Fegreet.dll -MD -LD
  • Tester l’application :
    jview TestJNI

Plus d'informations

Points à noter :
  • Dans l’appel à (de System.loadLibrary), omettez l’extension « .dll » à partir du nom de fichier de la bibliothèque native.
  • Pour prendre en charge le code natif hérité, suffit de votre fonction DLL rediriger l’appel à du code hérité.
(c) Microsoft Corporation 1999, tous droits réservés. Contributions par Joseph B. Hall, Microsoft Corporation.

RÉFÉRENCES

Pour des informations sur Visual J ++ et SDK pour Java, visitez le site Web de Microsoft à l’adresse suivante :
Propriétés

ID d'article : 222092 - Dernière mise à jour : 15 févr. 2017 - Révision : 1

Microsoft Virtual Machine for Java, Microsoft Visual J++ 6.0 Édition standard, Microsoft Software Development Kit for Java 3.1

Commentaires