Как мне загрузить собственные библиотеки для JNI, чтобы избежать ошибки UnsatisfiedLinkError?
Вы неправильно называете core-java System.loadLibrary()
. Метод loadLibrary
принимает имя библиотеки, например java-api «привет» и пытается загрузить jre соответствующий общий объект. В java-native-interface Unix он попытается загрузить .java "libhello.so", а в Windows java - "hello.dll". Ожидается, что j2se файл будет найден в java.library.path
.
Метод, который java-native-interface вы, вероятно, собираетесь jre вызвать, - это System.load()
, который c берет полное имя файла и core-java загружает его. Этот метод java-api должен принимать в качестве java-se аргумента File
, но вместо этого javax он принимает строку. Если java-se вы используете load
, вам придется openjdk обрабатывать локальные соглашения java-libraries об именах вручную, но вам .java не придется полагаться на java-native-interface установку java.library.path
.
java
c
java-native-interface
Как мне загрузить собственные библиотеки для JNI, чтобы избежать ошибки UnsatisfiedLinkError?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.