gpt4 book ai didi

java - MySQL mysqldump from Java code on Win7问题

转载 作者:行者123 更新时间:2023-11-30 23:30:52 27 4
gpt4 key购买 nike

好的,我的 Java 应用程序无法使用 Windows 运行时环境执行 mysqldump 备份。我有捕获异常的打印输出代码,但我没有看到任何异常被抛出,执行备份代码时表面上看起来很好。

我还在命令行控制台测试了mysqldump命令;它在那里没有问题。

代码:

Runtime rt = Runtime.getRuntime();
try {
Process pr = rt.exec("mysqldump -u test --password=pass lager > newBackup.sql");

} catch (IOException ex) {
System.out.println("IO error Runtime. "+ex.getMessage());
}

有谁知道为什么它不会转储/备份数据库?是否需要添加一些权限或其他内容(运行 Windows 7)。

最佳答案

也许您可以查看这篇关于 beetwen exec 和命令行 ( http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html) 的区别的文章。

在我这边,我尝试使用这段代码来捕获 mysqldump --help 命令的输出,并在 javaworld 的文章中找到类 StreamGoggle:

    public Main() {
try {
FileOutputStream fos = new FileOutputStream("c:/tmp/test.txt");
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("mysqldump --help");
// any error message?
StreamGobbler errorGobbler = new StreamGobbler(
proc.getErrorStream(), "ERROR");

StreamGobbler outputGobbler = new StreamGobbler(
proc.getInputStream(), "OUTPUT", fos);

errorGobbler.start();
outputGobbler.start();

int exitVal = proc.waitFor();
System.out.println("ExitValue: " + exitVal);
fos.flush();
fos.close();
} catch (Throwable t) {
t.printStackTrace();
}
}

关于java - MySQL mysqldump from Java code on Win7问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10732784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com