如何为Netbeans中的每个项目指定LD_LIBRARY_PATH(或PATH)?

时间:2011-12-28 17:03:46

标签: dynamic netbeans path shared-libraries

为了加载.DLL(在Windows下)或.SOs(在Linux下),我们必须使用环境变量PATH(Windows)或LD_LIBRARY_PATH(Linux)。

我们能够找到正确使用DLL和SO的唯一方法是在启动Netbeans之前定义环境变量。

  1. 有没有办法在里面指定那些环境变量 Netbeans的?
  2. 是否可以在项目中指定它 属性?这样每个项目都可以有自己的定义。
  3. 有没有办法只是附加到那些环境变量而不是仅覆盖它们?
  4. 背景:我们正在开发一个使用JNI访问本机库的Java程序。反过来,这些本机库访问其他依赖的本机库。因此,仅设置属性“java.library.path”不起作用,因为我们需要设置完整的LD_LIBRARY_PATH(或Windows的常规PATH)。

    在Netbeans之外,应用程序运行正常,因为我们在shell脚本中设置了环境变量。

    我们不希望将DLL或SO放在通常的系统目录中,因为我们不想在开发期间搞乱操作系统安装。此外,我们希望能够灵活地允许任何开发人员从源代码​​控制(Mercurial)中获取项目,并使所有相对路径正常工作。

    堆栈溢出已经存在设置environment variables programmatically in Java的黑客攻击。但是,我们正在寻找不那么强硬的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以覆盖NetBeans在build.xml文件中使用的Ant脚本任务(或直接在nbproject/build-impl.xml中的完整脚本中编辑它,但不建议这样做。)

run目标上使用了java task。您可以使用env参数为将运行JVM的进程指定环境变量。