Java mysqldump只是不';行不通

Java mysqldump只是不';行不通,java,mysql,Java,Mysql,我已经看了一会儿了 我已经从命令行运行了这个确切的命令,我知道它可以工作: mysqldump --user=user --password=password db > C:\\db.sql 然而,在Java中,它只是直接跳过,说备份失败了。我错过了什么 Process exec = Runtime.getRuntime().exec("mysqldump --user=user --password=password db > C:\\db.sql");

我已经看了一会儿了

我已经从命令行运行了这个确切的命令,我知道它可以工作:

mysqldump --user=user --password=password db > C:\\db.sql
然而,在Java中,它只是直接跳过,说备份失败了。我错过了什么

        Process exec = Runtime.getRuntime().exec("mysqldump --user=user --password=password db > C:\\db.sql");

        int processComplete = exec.waitFor();

        if(processComplete == 0)
            log.info("Backup successful.");
        else
            log.info("Backup failed. STOP GETTING HERE :(");
有什么想法吗?我在这里研究了其他问题,包括使用ProcessBuilder,但没有任何效果

编辑

我试过这个:

exec=Runtime.getRuntime().exec(“C:\ProgramFiles\MySQL\MySQL Server 5.5\bin\mysqldump.exe--user=user--password=password db>C:\db.sql”)

也不走运


我总是尝试/而不是\而且运气不好。我重新启动了MySQL并检查了权限。

问题似乎与我在代码中如何使用mysqldump有关。当我将命令重写为以下内容时:

Process exec = Runtime.getRuntime().exec("mysqldump -u user -ppassword db -r C:\\db.sql");
成功了


以防万一将来有人想要这个解决方案。

当您尝试从java执行命令时,命令行中的工作目录是什么?带有cmd的工作目录是C:,java中的命令就是您所看到的。另外-为什么我会收到关闭和否决的请求?至少解释一下……我猜java调用找不到mysqldump可执行文件。我会提供它的完整路径,因此我的问题围绕着工作目录。它可能是反斜杠的转义吗?