使用JAVA更新独立于OS的PATH环境变量

时间:2013-03-13 14:50:18

标签: java windows unix environment-variables

如何使用java更新环境变量PATH。使用相同的代码,当我在相应的操作系统中运行代码时,我应该能够在Windows和Unix中更新PATH变量。

提前致谢。

的问候, 圣

1 个答案:

答案 0 :(得分:0)

在Unix(c语言)中,您可以使用不同形式的“exec”命令来更改PATH,但它只能用于将其他/更新的变量传递给当前程序将执行的任何内容。

Unix的一个原则是环境与开始执行代码时的环境没有变化。因此,即使您的代码(java)通过JVM执行,它仍然必须遵守此规则。一旦JVM退出,对PATH的所有更新都将丢失。

在Windows中不是这种情况。程序可以更改当前环境,这就是为什么在Windows平台上执行某些代码后,您经常会发现自己位于不同的目录中。

不幸的是,正因为如此,你无法在Windows和Unix中都这样做。在Unix中你最好的希望就是拥有这样的东西:

myScript.sh:

# This is a script that executes the program and then 'includes' a script
/path/to/my/program  # which writes the following file containing environment changes
. /this/file/created/by/above
解释器中的

(如果您愿意,可以使用命令提示符):

# Execute my program using myScript.sh
. ./myScript.sh

这应该保留你的路径改变,但你不能在没有前导点的情况下调用'myScript.sh'。如果你忘了它,你可以在执行后包含“/ this / file / created / by / above”。

当然,当您使用它时,您需要处理多个用户可能同时执行的操作。因此,对于每次执行,文件“/ this / file / created / by / above”应该是不同的。调查可能使用“$$”参数。

聚苯乙烯。 “/ path / to / my / program”可以是一个将执行java代码的JVM。

安全性:如果我是“root”用户,我绝对不想执行您的代码。你的程序可以在该文件中放入任何内容“/ this / file / created / by / above”,它将由root执行。