如何使用java更新环境变量PATH。使用相同的代码,当我在相应的操作系统中运行代码时,我应该能够在Windows和Unix中更新PATH变量。
提前致谢。
的问候, 圣
答案 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执行。