1. Schreiben Sie eine Java -Datei, deklarieren Sie die native Methode und laden Sie die dynamische Verbindungsbibliothek über den statischen Anweisungsblock. Der Beispiel -CODE PROMPT.Java lautet wie folgt:
Klasse Eingabeaufforderung {private native String getline (String -Eingabeaufforderung); public static void main (String args []) {prompt p = new prompt (); String input = P.Getline ("Geben Sie eine Zeile ein:"); System.out.println ("Benutzer typisiert:" + Eingabe); } static {System.loadLibrary ("Eingabeaufforderung"); }} 2. Rufen Sie den Befehl javac an, um die Eingabeaufforderung zu generieren. Class -Datei.
Javac prompt.java
3. Rufen Sie den Befehl javah an, um die Eingabeaufforderung zu generieren.
Javah -jni -Eingabeaufforderung
Die automatisch generierte Header -Datei lautet wie folgt:
/ * Bearbeiten Sie diese Datei nicht - es ist ein Maschine generiert */#include <Jni.h>/ * Header für die Klassenaufforderung */#ifndef _included_prompt#Define _included_prompt#ifdef __cpluSplusextern "C" {#endif/ * * Klasse: Aufforderung * methode * methode: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: Getline: GetLine: (Ljava/lang/string;) ljava/lang/string; */Jniexport jstring jnicall java_prompt_getline (jnienv *, jobject, jstring);#ifdef __cplusplus}#endif#endif 4. Schreiben Sie die Datei forder.c -Datei, um bestimmte Funktionen zu implementieren:
#include <jni.h> #include <stdio.h> #include "prompt const jbyte *str; str = (*env)-> getStringutfchars (env, prompt, null); if (str == null) {return null; } printf ("%s", str); (*env)-> releasestringutfchars (env, prompt, str); scanf ("%s", buf); return (*env)-> newStingutf (env, buf);} 5. Kompilieren Sie die dynamische Bibliothek 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/inclux/linux prompt.c -o libprompt.so
6. Lauf.
Java -Eingabeaufforderung
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!