使用Java正确启动命令行过程并不容易。我建议您使用commons-
exec而不是自己尝试。
现在,您在命令行中有两件事需要特殊处理:
AWK脚本周围的单引号。当您将每个参数作为单独的字符串传递给
CommandLine
via时addArgument
,就不再需要引号了。输出重定向。
由于创建了子进程,因此您可以控制stdin和stout。这意味着您需要打开要在Java中追加的目标文件,将其包装在中
PumpStreamHandler并将其传递给
DefaultExecutor。

使用Java正确启动命令行过程并不容易。我建议您使用commons-
exec而不是自己尝试。
现在,您在命令行中有两件事需要特殊处理:
AWK脚本周围的单引号。当您将每个参数作为单独的字符串传递给
CommandLinevia时
addArgument,就不再需要引号了。
输出重定向。
由于创建了子进程,因此您可以控制stdin和stout。这意味着您需要打开要在Java中追加的目标文件,将其包装在中
PumpStreamHandler并将其传递给
DefaultExecutor。