1. Écrivez un fichier Java, déclarez la méthode native et chargez la bibliothèque de liens dynamiques via le bloc d'instruction statique. L'exemple de code invite.java est le suivant:
classe invite {private native string getline (string invite); public static void main (String args []) {invite p = new invite (); String Input = P.GetLine ("Tapez une ligne:"); System.out.println ("Utilisateur Typted:" + entrée); } static {System.LoadLibrary ("invite"); }} 2. Appelez la commande javac pour générer le fichier invite.class;
javac prompt.java
3. Appelez la commande javah pour générer le fichier d'en-tête invite.h pour référence par programme C:
Javah -jni invite
Le fichier d'en-tête généré automatiquement est le suivant:
/ * Ne modifiez pas ce fichier - il est généré à la machine * / # inclure <jni.h> / * En-tête pour l'invite de classe * / # ifndef _included_prompt # define _included_prompt # ifdef __cplusplusextern "c" {# endIF / * * class: invite * Method: getline * Signature: (ljava / lang / string;) ljav / ljav / land; Notre 4. Écrivez un fichier invite.c pour implémenter des fonctions spécifiques:
#include <jni.h> #include <stdio.h> #include "invite.h" jniexport void jnicalljava_prompt_getline (jnienv * env, jobject obj, jstring prompt) {char buf [128]; const Jbyte * str; str = (* env) -> getStringUtfchars (env, invite, null); if (str == null) {return null; } printf ("% s", str); (* Env) -> releasesringutfchars (env, invite, str); scanf ("% s", buf); return (* env) -> NewstringUtf (Env, buf);} 5. Compiler la bibliothèque dynamique libprompt.so;
gcc -shared -fpic -i / usr / lib / jvm / java-6-sun-1.6.0.26 / include -i / usr / lib / jvm / java-6-sun-1.6.0.26 / include / linux prompt.c -o libprompt.so
6. Run.
Java Invite
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!