我正在尝试使用Java在Linux(Ubuntu)中执行shell脚本并尝试将输出重定向到另一个文件。
String cmd[] = {"sh", "-c", "my_dir/script.sh > new_dir/out.txt"};
Process pb = Runtime.getRuntime().exec(cmd);
然而,这使我们无法正常工作。我无法将输出存储在out.txt文件中。有人可以建议一种方法来做到这一点吗?
使用ProcessBuilder
。我认为不需要产生额外的sh
。就像是,
ProcessBuilder pb = new ProcessBuilder("my_dir/script.sh");
pb.redirectOutput(new File("new_dir/out.txt"));
Process p = pb.start();
应该是你所需要的一切。
这对我有用。使用Runtime.exec()
Process p = Runtime.getRuntime().exec("my_dir/script.sh > new_dir/out.txt");
// Wait for execution completion
p.waitFor();