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

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

最佳答案

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

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

关于java - 我可以为Java native 接口(interface)(JNI)库设置环境变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28816301/

10-12 16:21