【问题标题】:passing argument to Runtime.getRuntime().exec() with an option at the beginning将参数传递给 Runtime.getRuntime().exec() 并在开头带有一个选项
【发布时间】:2016-02-10 22:55:58
【问题描述】:

我正在尝试将类似以下的命令传递给 Runtime.getRuntime().exec(),其中选项应该位于开头。

option="something" ./test.sh a b

无论我尝试什么,我都会得到这个异常:

Cannot run program "option="something"": error=2, No such file or directory

有什么想法吗?

【问题讨论】:

    标签: java unix environment-variables runtime.exec


    【解决方案1】:

    option="something" 只能在 shell 中为这个特定进程设置环境变量。要在 java 中执行此操作,您必须使用将环境变量作为参数的 exec 的重载之一。

    如: https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String[],%20java.lang.String[])

    或使用 ProcessBuilder: https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

    编辑:

    您应该注意,为新进程显式设置环境变量会导致当前程序中的所有环境变量都被忽略。如果你想传递当前的环境变量,你必须自己包含它们。

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 2015-01-06
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      相关资源
      最近更新 更多