2013-03-13 2 views
2

В 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/ каталога.

+0

JNA не устанавливает эту переменную самостоятельно. Возможно, какая-то часть вашей установки GStreamer устанавливает ее. Какова ценность, когда вы опускаете или не импортируете сопоставления gstreamer? Вполне возможно, что есть некоторый статический код в сопоставлениях gstreamer, который задает путь. – technomage

+0

Это тот же путь '/ System/Library/...'. Я тоже нашел кое-что, я обновлю вопрос. – Nick

+0

Очевидно, что команда 'pkg-config' в контексте' gstreamer-java.spec' отличается от контекста оболочки. Возможно, вам просто нужно перезапустить 'pkg-config' и друзей? Вы можете, по крайней мере, жестко закодировать новый путь в 'gstreamer-java.spec', чтобы узнать, все еще находится в игре, влияя на вашу среду исполнения. – technomage

ответ

0

Вы пытались бежать за пределы Eclipse?

+0

Параметры виртуальной машины Eclipse по умолчанию на панели «Настройки» устанавливали jna.library.path. Похоже, что большинство моих вопросов на SO вызвано отсутствием надлежащей изоляции. – Nick

Смежные вопросы