Загрузка библиотек Objective C от Java
Для загрузки Objective C динамические библиотеки в JAVA-приложения используйте класс NSRuntime. Если библиотеки содержатся в пакете, использование класса NSBundle может быть более надлежащим.
Основной метод NSRUNTIME, loadLibrary
, берет Аргумент строки, идентифицирующий динамическую библиотеку для загрузки. Строка может быть или абсолютным путем к библиотеке или просто именем библиотеки. Если просто имя библиотеки дано, или с или без стандартного префикса lib
или суффикс .dylib
, NSRuntime перерывает список каталогов, пока он не находит библиотеку. Например, для загрузки названной библиотеки libMyCode.dylib
расположенный в /usr/lib
, все следующие работы:
NSRuntime.loadLibrary("/usr/lib/libMyCode.dylib"); |
// Or, if /usr/lib is in the search paths |
NSRuntime.loadLibrary("MyCode"); |
NSRuntime.loadLibrary("libMyCode.dylib"); |
После загрузки библиотеки библиотека инициализируется путем вызова функционального базового имениInitialization
где базовое имя является именем библиотеки с префиксом и неизолированным суффиксом. Например, когда называют создание библиотеки libMyCode.dylib
, создайте названную функцию MyCodeInitialization
инициализировать библиотеку, когда это загружается. Функция не берет параметров.
Если библиотека испытывает недостаток в функции инициализации, выходах приложения с, если библиотека не найдена или UnsatisfiedLinkError
ошибка.
Класс NSRuntime управляет списком каталогов, ищущихся, когда Вы пытаетесь загрузить библиотеку, не обеспечивая ее абсолютный путь. Первоначально, путь поиска включает /usr/lib/java
и /usr/local/lib/java
. Можно добавить пути к списку при помощи метода addPathToLibrarySearchPaths
. Этот метод берет единственный Аргумент строки, содержащий абсолютный путь каталога для добавления к поисковому списку. Например, для добавления /usr/lib
к списку сделайте следующее:
NSRuntime.addPathToLibraryPaths("/usr/lib"); |
Для получения текущего списка путей поиска вызвать librarySearchPaths
.