javah



  • Hallo
    Ich habe Probleme mit der generierung einer Header datei (JNI) aus einem Java Class File.

    Folgender massen sieht die Klasse aus

    public class Test{
    
    	/**
    	 * deklaration of the native methode (c++)
    	 */
    	static native String setParameter(String applicationName, String applicationPath, String logFileName, String debug);
    }
    

    Wenn ich jetzt versuche folgendes auszuführen "java -jni Test "
    bekomme ich die fehlermeldung, dass die Klasse Test nicht gefunden werden kann. Woran kann das liegen?
    Kennt jemand ein eclipse plugin mit welchem ich direkt das Header file aus der entwicklungsumgebung generieren kann?



  • nicht java, javah

    und mal nachlesen, zum bleistift gut beschrieben in
    "java ist eine insel", gibt es auch online

    Erzeugen der Header-Datei

    Die nativen Funktionen haben eine feste Signatur, damit sie die JVM bei einem
    Funktionsaufruf auch finden können. Diese Methoden können von Hand erstellt
    werden, was jedoch sehr aufwändig ist. Besser ist es, die Header-Datei mit Hilfe
    des Programms javah für die zu implementierende Funktion zu erstellen. Das
    Programm liegt dem Java-SDK bei und muss im Pfad eingetragen sein. Der Aufruf
    sieht wie folgt aus:

    $ javah -jni -o strlen.h StrLen

    Mit dem Schalter -o bestimmen wir den Namen der Ausgabedatei, die in diesem Fall
    strlen.h heißen soll.

    An der entstandenen Header-Datei StrLen.h sollten keine Änderungen vorgenommen
    werden. Werfen wir dennoch einen Blick hinein, damit wir wissen, welche Methode
    wir implementieren müssen:...



  • oh war ein schreibfehler ich habe javah gemeint. aber scheint immer noch nicht zu funtionieren.



  • hi schrieb:

    oh war ein schreibfehler ich habe javah gemeint. aber scheint immer noch nicht zu funtionieren.

    hast Du Deine Klasse kompiliert??


Anmelden zum Antworten