next up previous contents
Next: Implementierung der Wrapper-Funktion Up: 6.3.4 Das Java Native Previous: Definition der nativen Methode

Erstellung der Header-Datei

Der nächste Schritt ist die Erstellung einer Header-Datei, welche den Funktionsprototypen zur Implementierung der nativen Methode enthält. Hierzu dient das Java-Utility javah. Folgender Aufruf generiert die Header-Datei UNIXSystemImpl.h aus der Java-Klassendatei UNIXSystemImpl.class: javah -jni UNIXSystemImpl. Abbildung 6.12 enthält den relevanten Teil der generierten Header-Datei. Für die Methode get_sysUptime() wurde die Signatur einer zu implementierenden C-Funktion mit dem Namen Java_UNIXSystemImpl_get_1sysUptime erzeugt. Dieser Name setzt sich aus dem Präfix «Java_», dem Namen der Klasse und dem modifizierten Methodennamen zusammen. Diese Funktion stellt einen Wrapper für die bestehende Funktion get_sysUptime() des SNMP-Agenten dar. Jeder Fremdfunktion werden standardmäßig zwei Parameter übergeben. Der erste ist ein Zeiger auf die JNI-Schnittstelle (JNI interface pointer). Über diesen Zeiger (JNIEnv *) kann die Fremdfunktion auf Parameter und Objekte zugreifen, die gegebenenfalls vom Java-Programm übergeben wurden. Der zweite Parameter (jobject) ist ein Zeiger auf das Objekt (,,this`` pointer), welches die native Methode enthält. Da die Methode get_sysUptime() keine Parameter übergibt, werden die beiden Zeiger nicht benötigt.


  
Abbildung 6.12: Ausschnitt aus der Header-Datei UNIXSystemImpl.h
58#58



Copyright Munich Network Management Team