【发布时间】:2021-09-17 00:59:43
【问题描述】:
我想通过 Java 执行 shell 命令并尝试使用 ProcessBuilder.class 和 Process.class:
public Process createProcess() throws IOException
{
List<String> cmds = new ArrayList<>();
cmds.add("start_date=\"2021-07-04\" && echo \"Starting with startdate=$start_date\"");
return (new ProcessBuilder(cmds)).start();
}
当我在我的 shell 上执行完全相同的命令时,它可以工作。当我在 Java 中执行此操作时,我得到:
java.io.IOException: Cannot run program "start_date="2021-06-10" (shorted ...)": error=2, No such file or directory
(我也试过不带变量start_date,直接输入日期)
为什么它不起作用?我可以以某种方式配置,Java 知道这不是文件等吗?
【问题讨论】:
-
ProcessBuilder 没有在 shell 中运行命令。阅读 ProcessBuilder 的 Javadoc。如果您需要更多帮助,请提出另一个问题。
标签: java shell unix processbuilder