я получаю неудовлетворенную ошибку линии при вызове JNI method.Below моих журналовПолучения Неудовлетворенных ошибок Link делая JNI вызов
Журналы
new exception [Handler processing failed; nested exception is java.lang.UnsatisfiedLinkError: demo.JNIWrapper.packet_mining_start(Ljava/lang/String;)I] with root cause
java.lang.UnsatisfiedLinkError: demo.JNIWrapper.packet_mining_start(Ljava/lang/String;)I
at demo.JNIWrapper.packet_mining_start(Native Method)
at demo.RESTController.getPcap(RESTController.java:97)
Ниже мой JNI код
public class JNIWrapper {
static{
System.load("/home/XXX/XXX/Library/newJNI/libJNIDemo.so");
}
//Get Path in output param and status
public native int packet_mining_start(String fileName);
}
Теперь этот метод вызывается из файла Main.java и при создании объекта для этого класса (JNIWrapper jni = new JNIWrapper()), в течение которого выполняется вызов System.load I d ont получает любую ошибку.
Теперь, когда я вызываю метод packet_mining_start в JNI, я получаю ошибку.
Мой .h файл метод является (Примечание не создается из файла класса Java)
uint32_t pax_packet_mining_start(uint8_t* mining_query_file_name);
Этот метод не содержит JNIEXPORT и JNICALL переменные или типы в нем .so, если метод, который не делает содержать JNIExport и вызов этого метода даст ошибку UnsatisfiedLink?
Обязательно ли иметь JNICall и JNIExport в собственном методе?
Как я могу интегрировать это с моим обычным c-файлом?
'Мой .h метод файла (примечание не создано из файла класса Java)' Таким образом, вы не использовали 'javah.exe' для создания заголовков C? – PaulMcKenzie
@PaulMcKenzie да, я не использовал javah для создания файла заголовка (в основном экспериментировал, как я могу вызвать собственный метод без создания файла заголовка с использованием javah) –
Метод, описанный трассировкой стека 'demo.JNIWrapper.packet_mining_start (Ljava/lang/String;) I', не соответствует объявленному в представленном вами Java-коде. Они различаются по количеству и типу аргументов.Либо вы оставляете важные детали, либо ваши классы находятся в противоречивом состоянии. –