У меня есть простой класс для использования в JNI, который мне нужно экспортировать в файл заголовка (.h).
Я читал, что мне нужно использовать команду javah
, перейдя в папку src
проекта и набрав:
javah -jni com.main_package.NativeClass
В Windows это работает нормально, а в моей основной ОС (Linux) - нет. Он продолжает говорить, что не может найти класс. Я пытался использовать множество комбинаций команды и запускать ее многими возможными путями, но это не сработало. Я следил за многими учебниками и веб-сайтами (в том числе здесь), а также пробовал их комбинации.
Я даже пытался использовать для этого внешний инструмент Eclipse, как показано здесь, но это также показал ту же ошибку.
Ошибка, которую я получаю, выглядит так:
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.
Кто-нибудь может мне помочь, пожалуйста! Мне очень нравится работать в Linux, и я бы не хотел менять ОС каждый раз, когда мне нужно использовать этот инструмент.
Вот правильный ответ:
для консоли перейдите в папку «bin/classes» и запустите команду, которую я использовал:
javah -jni com.main_package.NativeClass
для eclipse используйте ссылку, которую я дал, но вместо
${project_loc}/bin/
используйте${project_loc}/bin/classes/
, а затем в проводнике пакетов перейдите к NativeClass.java и запустите внешний инструмент. вывод будет по тому же пути, что и у java-файла.