如何使用Java重定向shell脚本的输出?

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

我正在尝试使用Java在Linux(Ubuntu)中执行shell脚本并尝试将输出重定向到另一个文件。

String cmd[] = {"sh", "-c", "my_dir/script.sh > new_dir/out.txt"};
Process pb = Runtime.getRuntime().exec(cmd);

然而,这使我们无法正常工作。我无法将输出存储在out.txt文件中。有人可以建议一种方法来做到这一点吗?

java linux bash shell sh
2个回答
1
投票

使用ProcessBuilder。我认为不需要产生额外的sh。就像是,

ProcessBuilder pb = new ProcessBuilder("my_dir/script.sh");
pb.redirectOutput(new File("new_dir/out.txt"));
Process p = pb.start();

应该是你所需要的一切。


1
投票

这对我有用。使用Runtime.exec()

    Process p = Runtime.getRuntime().exec("my_dir/script.sh > new_dir/out.txt");
    // Wait for execution completion 
    p.waitFor();
© www.soinside.com 2019 - 2024. All rights reserved.