In my desktop application whenever execute the code to backup my database from java application the app goes on waiting state may be for password , which we have to enter while backing up from command line. But i've provided the username and password of database in the code. Why is it going on waiting state. please help how can i do this. My execution code is:

  public boolean backupDB(String dbName, String dbUserName, String dbPassword) {

        Process runtimeProcess;
        try {

       runtimeProcess = Runtime.getRuntime().exec("C://xampp//mysql//bin//mysqldump -u"+ dbUserName+" -p "+dbPassword+" dbName+" > D://backup.sql");

            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;
    }

Try the following code:

import java.util.*;
import java.io.*;
public class BackUpSql {
    public static void main(String[] args) {
        try {
            Runtime rt = Runtime.getRuntime();
            rt.exec("cmd.exe /c start C:\\ab.bat");
            System.exit(0);
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

Here is the ab.bat:

set path=%path%;C:\Program files\MySQL\MySQL Server 5.0\bin;
mysqldump -uroot -proot register > C:\back.sql

where root is the username and password and register is the database.
You have to set the path to bin folder of mysql in the first line of ab.bat correctly.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.