Java jna.library.path是否使用任何环境变量?

Java jna.library.path是否使用任何环境变量?,java,jna,Java,Jna,在OSX10.8.2上,我使用JNA和GStreamerJava(通过EclipseIDE)加载gstreamer库。首先,我使用提供的SDK安装了gstreamer。但是,我卸载了它并使用Macports进行安装 SDK的LIB已安装到: /System/Library/Frameworks/GStreamer.framework/Versions/0.10-x64/lib 但那个目录已经不存在了 Macports将LIB安装到以下位置: /opt/local/lib 现在,假设我想让java

在OSX10.8.2上,我使用JNA和GStreamerJava(通过EclipseIDE)加载gstreamer库。首先,我使用提供的SDK安装了gstreamer。但是,我卸载了它并使用Macports进行安装

SDK的LIB已安装到:
/System/Library/Frameworks/GStreamer.framework/Versions/0.10-x64/lib

但那个目录已经不存在了

Macports将LIB安装到以下位置:

/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\u LIBRARY\u PATH、$LD\u LIBRARY\u PATH未设置此目录。它们实际上有我想要的路径,
/opt/local/lib/
集,看起来没有效果。运行
env
也不会显示具有框架路径的变量

所以,
jna.library.path
。它是外部设置的吗?我如何更改它——而不必在运行时或通过java命令行参数进行设置?告诉我使用符号链接,得零分

编辑:

通过搜索gstreamerjava的文件,我找到了
gstreamerjava.spec
,它有以下行:

sed-i[…]-e“s,\(run.jvmargs=-Djna.library.path=\).*,\1%{u 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/
目录下。

您是否尝试在Eclipse之外运行?

JNA本身没有设置此变量。GStreamer安装的某些部分可能正在设置它。忽略或不导入gstreamer映射时的值是多少?在设置路径的gstreamer映射中,完全可能存在一些静态代码。它与
/System/Library/…
路径相同。我还发现了一些其他东西,我将更新这个问题。显然,在
gstreamer java.spec
的上下文中运行
pkg config
命令与您的shell上下文不同。也许你只需要重新运行
pkg config
和friends?您至少可以将新路径硬编码到
gstreamer java.spec
中,以查看它是否仍在影响您的执行环境。我已经清理并重建了gstreamer java,认为该路径以某种方式内置到JAR中。但是,它似乎没有改变任何事情。为了验证,我创建了一个没有任何依赖项的新Java项目,并打印了jna.library.path,它为我提供了相同的系统框架路径。您是否尝试在Eclipse之外运行?Eclipse在首选项窗格中的默认VM参数是设置jna.library.path。看来我的大部分问题都是因为我缺乏适当的隔离。