Можно ли загрузить библиотеку Teamspeak.so по System.loadLibrary
в java и получить доступ к методам, объявленным в файлах .h? (источники являются файлы из ts3_sdk_3.0.3.2 - .h файлы из /include/teamspeak/serverlib.h; .so файлы из /bin/libts3server_linux_amd64.so)Загрузить динамическую связанную библиотеку Teamspeak с JNI в Java
Im возможности загрузить библиотеку:
System.loadLibrary("ts3server_linux_amd64");
- работает без ошибок.
Когда я пытаюсь использовать метод я получаю
java.lang.UnsatisfiedLinkError
Testcode:
public class main {
static {
System.loadLibrary("ts3server_linux_amd64");
}
public static void main(String[] args) {
new main().onClientStartTalkingEvent();
}
private native void onClientStartTalkingEvent();
}
(.so файл хранится в папке Lib и добавлен в путь к классам. OS - ubuntu).
Спасибо и наилучшие пожелания
Какова ваша реализация onClientStartTalkingEvent? –
реализация выглядит следующим образом: #ifndef SERVERLIB_H #define SERVERLIB_H #include #include #ifdef __cplusplus ехЬегп "C" { # endif struct ServerLibFunctions { \t void (* onClientStartTalkingEvent) (uint64 serverID, anyID clientID); \t void (* onClientStopTalkingEvent) (uint64 serverID, anyID clientID); (начало файла serverlib.h. Я уверен, что он хранится в .so-библиотеке) –
BenniR6
Мне нужно использовать что-то вроде указателя на методы в файле .h библиотеки .so? Я думал, что реализация «native void» является указателем? – BenniR6