如何使用ProcessBuilder执行shell重定向(command> output.txt)?

ALM*_*MEK 2 java mysql windows cmd

我想使用备份MySQL数据库,ProcessBuilder并且>没有像我预期的那样解释字符.这是我的代码:

java.util.List<String> cmd = new java.util.ArrayList<>();
cmd.add("mysqldump");
cmd.add("-u");
cmd.add("root");
cmd.add("-p"+password);
cmd.add("DBx");
cmd.add(">");
cmd.add("DBbk.sql");

ProcessBuilder pb = new ProcessBuilder(cmd);
pb.directory(new File("."));
Process p = pb.start();
p.waitFor();

BufferedReader err = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while((line = err.readLine()) != null) {
    System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Warning: Using a password on the command line interface can be insecure.
mysqldump: Couldn't find table: ">"

tbo*_*odt 7

进程构建器直接执行程序,而不是通过shell /命令提示符执行它.因此,您没有像>重定向字符那样获得shell的任何不错的功能.抱歉.