【发布时间】:2013-10-04 03:15:10
【问题描述】:
我想使用 ProcessBuilder 备份 MySQL 数据库,但 > 字符未按预期解释。这是我的代码:
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);
}
输出是:
警告:在命令行界面上使用密码可能不安全。 mysqldump:找不到表:“>”【问题讨论】:
-
重定向是一个shell函数。您似乎直接运行
mysqldump,因此重定向将不适用。