我在Java中使用Runtime.exec遇到麻烦,似乎有些命令有效,而其他命令无效。例如,如果我运行
echo some data > data.txt
在我的终端中,它工作正常,但是,如果我尝试使用Java来执行此操作,则将无法正常工作。
Runtime mRuntime = Runtime.getRuntime();
Process mProcess = mRuntime.exec("echo some data > data.txt");
mProcess.waitFor();
有什么理由吗?
echo
不是真正的命令,因为它具有可以运行的二进制文件。它是shell的内置功能。
这是因为echo
是Shell内部命令,而不是可以执行的程序!尝试改为运行bash -c "echo some data > data.txt"