有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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) 个答案

  1. # 1 楼答案

    您的主要问题是对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);