Używanie javah na Linuksie
Mam prostą klasę do użycia w JNI, którą muszę wyeksportować do pliku nagłówkowego (.h).
Czytałem, że muszę użyćjavah
polecenie, przechodząc dosrc
folder projektu i wpisz:
javah -jni com.main_package.NativeClass
W systemie Windows działa dobrze, ale na moim głównym systemie operacyjnym (Linux) nie działa. Ciągle mówi, że nie może znaleźć klasy. Próbowałem użyć wielu kombinacji polecenia i uruchomić go na wielu możliwych ścieżkach, ale nie zadziałało. Poszedłem za wieloma samouczkami i stronami internetowymi (w tym tutaj) i wypróbowałem ich kombinacje.
Próbowałem nawet użyć do tego zewnętrznego narzędzia Eclipse, jak pokazanotutaj, ale również pokazał ten sam błąd.
Błąd, który otrzymuję, wygląda tak:
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.
Czy ktoś może mi pomóc? Naprawdę lubię pracować na Linuksie i nie chciałbym zmieniać systemu operacyjnego za każdym razem, gdy muszę korzystać z tego narzędzia.
Oto poprawna odpowiedź:
w konsoli przejdź do folderu „bin / classes” i uruchom polecenie, którego użyłem:
javah -jni com.main_package.NativeClass
za eclipse użyj linku, który podałem, ale zamiast${project_loc}/bin/
posługiwać się${project_loc}/bin/classes/
, a następnie w eksploratorze pakietów przejdź do NativeClass.java i uruchom narzędzie zewnętrzne. wyjście będzie w tej samej ścieżce, co plik java.