2011-03-25 130 views
0

我已经编写了一些工作得很好的JNI代码。我从Java调用一个需要设置一些环境变量的API。目前,我正在使用Windows XP SP3。使用Java配置系统环境以调用JNI调用

我需要在用户空间设置一个变量(例如:FOO = bar),并且需要添加一些路径到系统路径。我需要这样做,因为我在需要这些环境设置的C代码中使用第三方DLL。

现在我有点卡住了,不知道如何设置这些变量。我尝试了一个启动Java程序的批处理文件,但这不起作用,因为我只改变了该进程的环境。 JNI似乎有自己的过程,并没有我刚刚改变的设置。

那么,你们有没有想法,我该如何处理?

感谢您的帮助和问候来自德国

马尔科

回答

0

你使用的是哪种批处理脚本?通常情况下,变量 在过程中设置向下传播从 创建过程中的所有流程:如果我在控制台窗口中做

set toto=abc 

,我发现所有 程序这个环境变量从该窗口中启动。

+0

是的,我正在使用set ...所以如果我从该批次启动Java程序它将工作?目前我正在从Java调用批处理... – 2011-03-25 10:02:12

+0

这个解决方案不起作用... – 2011-03-25 15:44:20

+0

它应该。我们经常使用它,没有问题。 – 2011-03-28 08:48:09

2

JNI没有得到自己的过程 - 你正在做一些错误的批处理文件。

虽然可以使用SetEnvironmentVariable API调用,但可以使用C代码设置环境。