#java #java-native-interface #javac #javah
#java #java-native-interface #javac #javah
Вопрос:
Я пытаюсь сгенерировать файл заголовка (MyClass.h) с помощью команды javah -jni MyClass.java
, поскольку я использую JDK 1.8, но я также пытался использовать другую версию команды javac -h MyClass.java
, но я всегда получаю следующий результат в своем терминале :
Все мои файлы .java или .class находятся в этой папке.
Спасибо за помощь
[править] Я также пробовал с файлом .class, но результат тот же javac -h
, но с javah -jni
помощью я получаю следующий результат :
Комментарии:
1. Является ли ваш класс simipleJNI в каком-либо конкретном пакете или он доступен в пакете по умолчанию?
2. его нет ни в одном пакете
3. Я могу сгенерировать SimpleJNI.h, используя 1.
javac SimpleJNI.java
2.javah SimpleJNI
4. Да, теперь это работает так! опубликуйте решение, чтобы я мог пометить его как решенное 🙂
Ответ №1:
Попробуйте скомпилировать SimpleJNI.java сначала, а затем выполните команду javah.
Пример класса
public class SimpleJNI
{
public static void someMethod()
{
System.out.println("Some method");
}
}
При компиляции используется javac с -classpath, если требуется какая-либо внешняя зависимость.
javac -classpath <path_to_dependency> SimpleJNI.java
или без -classpath, если нет зависимости
javac SimpleJNI.java
затем выполните javah с вашим файлом .class
javah SimpleJNI