执行此代码时,不会创建重定向中指定的文件。为什么不呢?
public class MyDdlSql {
public static void main(String[] args) {
try {
Runtime.getRuntime().exec("mysqldump -uroot -psuri biztime >D:data.sql");
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
看这里:
Runtime's exec() method is not redirecting the output
重定向是shell的一项功能。所以你不能使用它。相反,你应该使用ProcessBuilder。
ProcessBuilder builder = new ProcessBuilder("mysqldump", "-uroot", "-psuri", "biztime");
builder.redirectOutput(new File("D:\\data.sql"));
builder.redirectError(new File("error.log"));
Process p = builder.start();