【问题标题】:Can I set an Environment Variable for Java Native Interface (JNI) libraries?我可以为 Java 本机接口 (JNI) 库设置环境变量吗?
【发布时间】:2015-03-02 17:50:17
【问题描述】:

我有一个跨平台的 Java 应用程序,它依赖于一些本地 (C++) 库来调用执行复杂科学计算的函数。使用 JNI(使用 SWIG 生成的胶水代码)访问本机库。这些库访问多个环境变量,用于配置和定位各种数据表等。 我希望我的 Java 应用程序能够设置这些环境变量,至少在 JNI 库的上下文中。如果 Java 提供了一种在其自己的 shell/上下文中设置环境变量的方法,这将很容易,但事实并非如此。

我看到similar questions 的答案需要更改Java 本身或子进程的变量。这个问题是不同的,因为它专门与 JNI 调用的代码相关。我的猜测是情况是相同的,因为 JNI 代码可能与 Java 应用程序本身在相同的环境中运行。 但是,我想我会问一下,以防万一有一些 JNI 设置或方法可以做到这一点。

【问题讨论】:

    标签: java java-native-interface environment-variables native


    【解决方案1】:

    你的猜测是正确的。环境变量与进程相关联。 JNI 和非 JNI 没有区别。

    您应该能够使用另一个 JNI 库来设置环境,以便在同一进程中运行的另一个库进行拾取。

    【讨论】:

    • 什么“其他”JNI 库会做这样的功能?
    • @Holger 一个由您编写并由您控制的。
    • 哦,那个。谢谢。 :-)
    猜你喜欢
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    相关资源
    最近更新 更多