Загрузка библиотек 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.