Javah
Javah is een applicatie die header-bestanden kan maken uit Java-broncode. Het wordt gebruikt wanneer een Java-programma functies moet aanroepen die in een andere programmeertaal geschreven zijn, bijvoorbeeld in C.
Het aanroepen van functionaliteit uit een andere programmeertaal gaat met de JNI: de Java Native Interface. Om een class een aanroep te laten doen naar een native methode, moet die class een methode bevatten met de native modifier. Dan kan er middels Javah een header-bestand worden aangemaakt.
Javah-voorbeeld
bewerkenIn het voorbeeld hieronder wordt voor de class Test een headerfile gemaakt.
public class Test { static { System.loadLibrary("test"); } public native void test(); }
Deze class moet gecompileerd worden met Javac, en vervolgens dient Javah te worden aangeroepen:
$ javac Test.java $ javah Test
Javah genereert een header-bestand, zoals hieronder weergegeven.
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Test */ #ifndef _Included_Test #define _Included_Test #ifdef __cplusplus extern "C" { #endif /* * Class: Test * Method: test * Signature: ()V */ JNIEXPORT void JNICALL Java_Test_test (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
De methode Java_Test_test(JNIEnv*, jobject)
wordt aangeroepen als de methode test()
in de Test class wordt aangeroepen.
Externe links
bewerken- The Code Project: JNI Basics
- IBM: Java Programming with JNI