我试图将以下命令传递给Runtime.getRuntime()。exec(),其中选项应该在开头。
option="something" ./test.sh a b
无论我尝试什么,我都会遇到这个例外:
Cannot run program "option="something"": error=2, No such file or directory
有什么想法吗?
答案 0 :(得分:2)
执行option="something"
仅适用于shell,以便为此特定进程设置环境变量。要在java中执行此操作,您必须使用exec
的一个重载,它将环境变量作为参数。
或使用ProcessBuilder: https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
编辑:
您应该注意,为新进程显式设置环境变量会导致忽略当前程序中的所有环境变量。如果要传递当前环境变量,则必须自己包含它们。