2. Hello World! |
|
zurück | weiter |
2.1 BeispielAls Einführung in das Thema JNI soll die "Hello World!" Anwenendung dienen.
Die Quellen des Beispieles und eine übersetzte Version kann hier heruntergeladen werden
[kap02.zip]. Eine allgemeine Anleitung zu den Beispielen
ist im Anhang zu finden. |
|
2.2 QuellcodeJava Code: public class HelloWorld { public native void show(); public static void main(String[] args) { System.loadLibrary("HelloWorld"); HelloWorld hw = new HelloWorld(); hw.show(); } }C Code: #include <stdio.h> #include <windows.h> #include "classes\Generated Source\HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_show(JNIEnv *env, jobject thisObj) { int me; // MessageBox Rückgabewert // MessageBox anzeigen me = MessageBox(NULL,"Hello World!","Hello World!",MB_OKCANCEL); // Ausgabe if( me == IDOK ) printf("*** OK ***"); else printf("*** CANCEL ***"); }In der Java Klasse HelloWorld ist die native Methode show deklariert.
Die deklaration hat Ähnlichkeit mit der einer abstrakten Methode. Der Unterschied
liegt nur in dem midifier native . In der main Methode
wird mit dem Aufruf System.loadLibrary("HelloWorld") eine Bibliothek
geladen in der sich die Implementierung der Methode show befindet.
Unter Windows ist das eine .dll und unter Linux eine .so Datei.
Unter den verschiedenen UNIX und Linux Versionen kann unter Umständen noch der Kürzel
lib vor den Bibliotheknamen angehägt werden. So muß die Bibliothek
unter Solaris zum Beispiel libHelloWorld.so heißen.
Der C Code enthält die Funktion die bei dem Aufruf der Java Methode |
|
2.3 Entwicklung einer JNI AnwendungDie prinzipielle Vorgehensweise bei der Entwicklung einer JNI Anwendung umfasst
sieben Schritte. Die folgende Grafik zeigt die Vorgehensweise: Die Schritte im einzelnen:
Die Schritte I. bis III. können bequem mit einer Entwicklungsumgebung in einem Schritt abgearbeitet werden. Bei der Entwicklungsumgebung JBuilder 4 kann die Generierung der C/C++-Header Dateien per Option eingestellt werden. Der JBuilder generiert bei jdem Compilerlauf die gewünschten Header Dateien dann neu. Genau so können die Schritte IV bis VI mit einer geeigneten Entwicklungsumgebung abgearbeitet werden. Unter Windows kann das Visual Studio der Firma Microsoft dazu verwendet. Das Visual Studio unterstützt den Entwickler dabei mit geeigneten Wizards zu Erstellung von dynamischen Bibliotheen und nimmt die Grundeinstellungen für den Compiler und Linker vor. |
|
zurück | weiter |
© 2001, Michael Bromm | Version 1.0 |