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