使用Linux中的echo在Runtime.exec中创建文件?

问题描述 投票:3回答:2

我在Java中使用Runtime.exec遇到麻烦,似乎有些命令有效,而其他命令无效。例如,如果我运行

echo some data > data.txt

在我的终端中,它工作正常,但是,如果我尝试使用Java来执行此操作,则将无法正常工作。

Runtime mRuntime = Runtime.getRuntime();
Process mProcess = mRuntime.exec("echo some data > data.txt");
mProcess.waitFor();

有什么理由吗?

java linux shell terminal echo
2个回答
8
投票

echo不是真正的命令,因为它具有可以运行的二进制文件。它是shell的内置功能。


1
投票

这是因为echo是Shell内部命令,而不是可以执行的程序!尝试改为运行bash -c "echo some data > data.txt"

© www.soinside.com 2019 - 2024. All rights reserved.