可能这个问题太容易了,但我花了很多时间,但我无法理解。我正在尝试执行echo
命令,我试图在文本文件中附加一些数据。在终端中运行时一切正常,但当我尝试通过Runtime.getRuntime().exec("echo my text >> file.txt")
运行时,则>>不起作用。
有没有办法提供代码或其他东西,以便此命令可以工作?我试过>
,但它对我不起作用。
答案 0 :(得分:0)
问题是:在哪个shell中应该执行echo命令? Runtime.exec可以获得cmdArray。 http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec%28java.lang.String[],%20java.lang.String[]%29
import java.io.*;
class RuntimeExecLinux {
public static void main(String[] args){
try {
// Execute a command with arguments
String[] cmd = new String[]{"/bin/bash", "-c", "echo 'my text from java' >> file.txt"};
Process child = Runtime.getRuntime().exec(cmd);
cmd = new String[]{"/bin/bash", "-c", "cat file.txt"};
child = Runtime.getRuntime().exec(cmd);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
System.out.print((char)c);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
问候
阿克塞尔