如何在Eclipse启动时将本机库添加到"java.library.path"(而不是覆盖它)

Tou*_*uko 89 java eclipse path java.library.path

我有一个需要添加到java.library.path的本机库.使用JVM参数-Djava.library.path = path ...我可以根据需要设置路径.

我的问题是我的其他库(pentaho报告)基于默认的java.library.path(包括系统目录等)搜索字体,手动设置会覆盖默认路径.

那么:如何路径条目添加到默认的java.library.path而不是覆盖它(这似乎是用-Djava.library.path完成的)?(我不想手动添加默认路径,这对于部署来说不是很好)

编辑:抱歉缺少详细信息; 我正在使用Eclipse.(部署是使用JNLP完成的,我可以在资源下使用 nativelib)

Tou*_*uko 46

已经忘记了这个问题......我实际上是在问Eclipse,抱歉原来没有说明.答案似乎太简单了(至少3.5;可能还有旧版本):

Java运行配置的参数:VM参数:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

一定不要忘记引号,否则PATH中的空格有问题.

  • 如果有两个共享库,一个依赖另一个,这将不起作用.第一个是由Java运行时找到的,但第二个是由系统动态加载程序解决的.我找到的唯一解决方案是设置LD_LIBRARY_PATH. (7认同)
  • @Touko给出的答案不适合原始问题,即关于附加或添加本机库文件夹的问题.至少在Mac OS 10.8上,$ PATH和$ LD_LIBRARY_PATH以及$ {workspace_loc:project}\lib都没有与默认值有关.例如,在我的Mac上,默认值为$ HOME/Library/Java/Extensions:/ Library/Java/Extensions:/ Network/Library/Java/Extensions:/ System/Library/Java/Extensions:/ usr/lib/java :. (3认同)

Fab*_*eeg 14

如果要添加本机库而不干扰java.library.pathEclipse中的开发时间(为了避免包含绝对路径并且必须向启动配置添加参数),您可以为Java Build中的每个Jar提供本机库位置的路径Native库位置下的Path对话框.请注意,本机库文件名必须与Jar文件名对应.另请参见此详细说明.

  • -1.您假设最终用户正在从IDE运行应用程序,这是不太可能的. (3认同)

Aar*_*lla 9

SWT将必要的本机DLL放入JAR中.搜索"org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar"作为示例.

DLL必须位于JAR的根目录中,必须对JAR进行签名,并且DLL必须在META-INF/MANIFEST.MF中显示校验和,以便VM接收它们.

  • 我如何使用NetBeans执行此操作? (2认同)

and*_*oot 5

在 Windows 中,像这样:

-Djava.library.path="C:/MyLibPath;%PATH%"

%PATH%你老了吗-Djava.library.path

  • UNIX/Mac/GNU Linux 上的默认值为 LD_LIBRARY_PATH。PATH 是 Windows 的东西。 (2认同)