Javah unter Linux benutzen
Ich habe eine einfache Klasse für die Verwendung in JNI, die ich in eine Header-Datei (.h) exportieren muss.
Ich habe gelesen, dass ich das benutzen mussjavah
Befehl, indem Sie auf diesrc
Ordner des Projekts, und geben Sie Folgendes ein:
javah -jni com.main_package.NativeClass
Unter Windows funktioniert es einwandfrei, unter meinem Hauptbetriebssystem (Linux) jedoch nicht. Es wird immer wieder darauf hingewiesen, dass die Klasse nicht gefunden werden kann. Ich habe versucht, viele Kombinationen des Befehls zu verwenden und ihn auf vielen möglichen Pfaden auszuführen, aber es hat nicht funktioniert. Ich bin vielen Tutorials und Websites gefolgt (einschließlich hier) und habe auch deren Kombinationen ausprobiert.
Ich habe sogar versucht, dafür das externe Tool von Eclipse zu verwenden (siehe Abbildung)Hier, aber es hat auch den gleichen Fehler gezeigt.
Der Fehler, den ich erhalte, sieht folgendermaßen aus:
error: cannot access com.main_package.NativeClass
class file for com.main_package.NativeClass not found
javadoc: error - Class com.main_package.NativeClass not found.
Error: No classes were specified on the command line. Try -help.
Kann mir bitte jemand helfen? Ich arbeite sehr gerne unter Linux und möchte nicht jedes Mal das Betriebssystem wechseln, wenn ich dieses Tool benötige.
Hier ist die richtige Antwort:
Wechseln Sie für die Konsole in den Ordner "bin / classes" und führen Sie den Befehl aus, den ich verwendet habe:
javah -jni com.main_package.NativeClass
Verwenden Sie für Eclipse den Link, den ich angegeben habe, aber anstelle von${project_loc}/bin/
benutzen${project_loc}/bin/classes/
Wechseln Sie im Paket-Explorer zur Datei NativeClass.java, und führen Sie das externe Tool aus. Die Ausgabe erfolgt im selben Pfad wie in der Java-Datei.