运行此代码后,我得到一个空白的sql文件。 :(

时间:2013-06-06 04:14:59

标签: java mysql

private void jMenuItem16ActionPerformed(java.awt.event.ActionEvent evt)  
{                                            

    int r = JOptionPane.showConfirmDialog(null, "Backup ??" , "Backup" , JOptionPane.YES_NO_OPTION);
    if(r==0){
        String filename = BackupNamer.getname();

        try{

            Process rt = Runtime.getRuntime().exec("cmd.exe /C path=C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin;mysqldump -uroot --password=12345 librarysystem>D:\\"+filename+"");


         int pr = rt.waitFor();
         if(pr==0){

             JOptionPane.showMessageDialog(null, "backup created");
         }
         else if(pr==1){

             JOptionPane.showMessageDialog(null, "error");
         }



        }catch(Exception e){

            System.out.println(e);
        }


    }

}

通过这段代码,我想创建一个我的数据库的备份。但它只在给定的路径中创建一个空文件。

1 个答案:

答案 0 :(得分:0)

您的主要问题是您对Runtime.getRuntime().exec()的调用:它期望单独的字符串用于程序和所有参数。例如:

Process rt = Runtime.getRuntime().exec("cmd.exe", "/C", "path=C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin;mysqldump", "-uroot", "--password=12345", "librarysystem>D:\\"+filename);