0

我的应用程序包含一个用于备份的 java 框架。我在公共类中添加以下代码并调用它。我需要在应用程序中创建 MySQL 转储文件。我如何使用 java 代码来做到这一点,下面的一组代码将给出你在我的程序中到底做了什么。

  public boolean backupDB() {

    connection = (Connection) dbSource.getConnection();


    String executeCmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump\"  -u root -p pass macfast -r backup.sql";
    Process runtimeProcess;
    try {

        runtimeProcess = Runtime.getRuntime().exec(executeCmd);
        int processComplete = runtimeProcess.waitFor();

        if (processComplete == 0) {
            System.out.println("Backup created successfully");
            return true;
        } else {
            System.out.println("Could not create the backup");
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return false;
}

我称之为

 private void backupbtnActionPerformed(java.awt.event.ActionEvent evt) {
    backupDB();
}

当我尝试运行时它卡住了。运行后我无法关闭框架。只能通过任务管理器进行。为什么?

4

3 回答 3

0

似乎问题是...程序文件...之间的空白,您需要将路径括在“

改变String executeCmd = "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump -u root -p pass macfast -r backup.sql";

String executeCmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump\"  -u root -p pass macfast -r backup.sql";
于 2013-07-31T15:24:34.930 回答
0

您为什么不尝试使用实用程序的完整路径?

/<fullpath>/mysqldump -u
于 2013-07-31T10:50:37.373 回答
0

确保 mysqldump 在您的系统 PATH 环境变量中

该错误表明它找不到该程序,这意味着它可能正在工作目录中查找。

于 2013-07-30T19:26:02.033 回答