2015-03-02 81 views
2

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

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

回答

1

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

您应该可以使用另一个JNI库来设置在同一进程中运行的其他库的环境。

+0

什么'其他'JNI库会做这样的功能? – 2017-07-07 16:10:10

+0

@Holger你写的并且在你的控制之下。 – user2543253 2017-07-10 13:58:04

+0

哦,那个。谢谢。 :-) – 2017-07-18 07:20:09