2012-03-30 7 views
18

Ich benutze Eclipse, um eine JNI-Header-Datei zu generieren. Ich schaute in program files\java\jre6\bin und fand eine Menge .exe und .dll Dateien, aber ich konnte den Befehl javah nicht finden, der in der Dokumentation zur Verwendung von JNI war, um Bindungen zu C-Bibliotheken zu erstellen.
Irgendwelche Hilfe?Wie generiere ich JNI-Header-Datei in Eclipse

+0

Check this out : http: // Stapelüberlauf.com/questions/10483959/javah-fehler-android-app-activity-not-found/25989225 # 25989225 –

Antwort

32

Verwenden Sie das folgende Fenster, um ein neues externes Tool für javah.exe zu definieren.

Zeigen Sie "Location" auf das Werkzeug javah.exe.

Set "Working Directory" auf

${workspace_loc:/${project_name}/bin} 

Set "Argumente" zu:

-classpath ${project_classpath} -v -d ${workspace_loc:/${project_name}/src} ${java_type_name} 

enter image description here

das Tool auszuführen, markieren Sie die Java-Quelldatei im Paket-Explorer und Lauf das Werkzeug.

enter image description here

Drücken Sie F5 th Projekt zu aktualisieren, um die neu erzeugte Datei zu sehen.

+1

können Sie bitte erklären Sie die Argumente ... das wird wirklich hilfreich sein ... danke – aProgrammer

+1

Klicken Sie auf die "Variablen .." Taste. Die Beschreibung für jeden ist dort aufgeführt. – Java42

+0

woo hoo! Beeindruckende Arbeit. –

2

Nur einige Informationen ...

Leider über die Lösung nicht für mich arbeiten, aber die Lösung in diesem Thread tat

Using javah -jni with an Eclipse project structure

Mit den oben genannten Argumente erwähnt, habe ich :

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name:path/to/project

fand ich heraus, dass das Problem ein Leerzeichen in der war Pfad zu meinem Projekt. Für die obige Lösung war es hilfreich, die Pfade in Anführungszeichen zu schreiben.

0

Ort

// javah.exe Pfad

C: \ Programme \ Java \ jdk1.7.0_79 \ bin \ javah.exe

Arbeitsverzeichnis

$ {workspace_loc:/$ {projektname}/bin}

Argumente

-classpath $ {project_classpath} -v -d $ {workspace_loc:/$ {project_name}/jni} $ {} java_type_name

offene Java-Klasse und Lauf-Tools