jni java.lang.UnsatisfiedLinkError при вызове существующих методов в существующей библиотеке JDK - PullRequest
0 голосов
/ 03 июня 2018

Я пытался вызвать существующий нативный метод, но получил UnsatisfiedLinkError и не понимаю, почему, поскольку я скопировал существующий код из JDK и не написал свою собственную функцию C.

Я скопировал некоторый код изисходный код JDK Sockets Java.Запуск в Ubuntu.

public class Sokket {

static {
    System.loadLibrary ("net");
}

static {
    initProto ();
}

// rest ommited for brevity

}

Запуск этого кода приводит к:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 

be.good.Sokket.initProto()V

at be.good.Sokket.initProto(Native Method)

at be.good.Sokket.<clinit>(Sokket.java:12)

Я пробовал другие нативные методы, но та же ошибка, я изменил имя "net ", чтобы проверить, может ли библиотека быть найдена, и тогда я получаю ошибку, что lib не может быть найден в java.library.path, я изменил имя" initProto ", чтобы проверить, можно ли найти метод, и затем я получаюта же ошибка.Поэтому мне кажется, что «libnet.so» в каталоге lib JDK не имеет initProto (), но также не createSocket().

Когда я запускаю с -verbose:jni, я вижу, что загружено много библиотекно без ссылки на «net» или «initProto».

Как я могу вызвать существующие нативные методы из моего собственного кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...