В OS X 10.8.2 я использую JNA и gstreamer-java (через Eclipse IDE) для загрузки библиотек gstreamer. Сначала я установил gstreamer, используя SDK, предоставленный gstreamer.com. Однако я удалил это и использовал Macports для его установки.Использует ли jna.library.path любые переменные среды?
ЛИЭС В SDK в были установлены на: /System/Library/Frameworks/GStreamer.framework/Versions/0.10-x64/lib
Но этот каталог больше не существует.
Где MacPorts установлен на LIBS:
/opt/local/lib
Теперь, скажем, я хочу установить Java знать это место через какое-либо переменное окружение. Это возможно? Это так кажется, потому что запуск этой линии:
System.out.println(System.getProperty("jna.library.path"));
показывает /System/Library/Frameworks/GStreamer.framework/Versions/0.10-x64/lib
. Но я не могу, чтобы жизнь меня определяла, где это произошло. Он не задан как аргумент VM во время выполнения. Мои $ PATH и $ DYLD_LIBRARY_PATH, $ LD_LIBRARY_PATH не имеют этого набора каталогов. У них действительно есть путь, который я хочу, /opt/local/lib/
, который не имеет никакого эффекта. Запуск env
также не отображает переменные с помощью пути Framework.
Итак, jna.library.path
. Установлен ли он снаружи? Как я могу его изменить - без установки его во время выполнения или с помощью аргументов командной строки java? Нулевые баллы за то, что вы сказали мне символическую ссылку.
EDIT:
Поиск по файлам GStreamer-Java привела меня к gstreamer-java.spec
, который имеет следующую строку:
sed -i [...] -e "s,\(run.jvmargs=-Djna.library.path=\).*,\1%{_libdir}:$(pkg-config --variable=pluginsdir gstreamer-0.10),"
Запуск Содержится команду pkg-config --variable=pluginsdir gstreamer-0.10
получает меня это:
/opt/local/lib/gstreamer-0.10
Каков правильный путь для плагинов. Далее работает pkg-config --print-variables gstreamer-0.10
дает мне все эти:
typelibdir
datarootdir
exec_prefix
pluginsdir
datadir
prefix
libdir
includedir
girdir
toolsdir
которые все на или под правильным /opt/local/
каталога.
JNA не устанавливает эту переменную самостоятельно. Возможно, какая-то часть вашей установки GStreamer устанавливает ее. Какова ценность, когда вы опускаете или не импортируете сопоставления gstreamer? Вполне возможно, что есть некоторый статический код в сопоставлениях gstreamer, который задает путь. – technomage
Это тот же путь '/ System/Library/...'. Я тоже нашел кое-что, я обновлю вопрос. – Nick
Очевидно, что команда 'pkg-config' в контексте' gstreamer-java.spec' отличается от контекста оболочки. Возможно, вам просто нужно перезапустить 'pkg-config' и друзей? Вы можете, по крайней мере, жестко закодировать новый путь в 'gstreamer-java.spec', чтобы узнать, все еще находится в игре, влияя на вашу среду исполнения. – technomage