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.