Фон
Итак, я пытаюсь загрузить jnilib (в частности, JOGL ) в Java на Mac OS X во время выполнения. Я следил за соответствующими вопросами переполнения стека:
Конечная цель для меня - упаковать JOGL-файлы для конкретной платформы в JAR, разархивировать их во временный каталог и загрузить при запуске. Я вернул свою проблему к простой попытке загрузки JOGL с использованием жестко закодированных путей:
File f = new File("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl.jnilib");
System.load(f.toString());
f = new File ("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl_awt.jnilib");
System.load(f.toString());
Я получаю следующее исключение при попытке использовать JOGL API:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Но когда я указываю java.library.path
, добавив следующую опцию JVM:
-Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
Все отлично работает.
Вопрос
Возможно ли использовать System.load
(или другой вариант) в Mac OS X в качестве замены -Djava.library.path, который вызывается во время выполнения?