Backup sql com comando pelo runtime

boa noite amigos, to com um problema no meu metodo que faz backup do MySQL Server…ele simplesmente não faz nada…sendo que o parametro enviado se executado no “executar” faz o backup certinho…

aqui vai o codigo:

public void backupMySQL() throws IOException{ try { Runtime.getRuntime().exec("cmd.exe /C mysqldump -u root -psenha -x -e -A > backup.sql"); } catch(IOException ex) { System.out.println("erro"); } }

Faço assim e roda perfeitamente…só lembrando q meu windows é 64 bits…

public static void fazBackup()
	  {
	  DateTime cal = new DateTime();
	  int dia = cal.getDayOfMonth();
	  int mes = cal.getMonthOfYear();
	  int ano = cal.getYear();
	  String snh = ""; 
	  String banco ="studio";
	  File diretorio = new File("D:/SDO-Backup");
	  File arquivo = new File("D:/SDO-Backup/bkp_"+banco+"_"+ano+"_"+mes+"_"+dia+".sql");
	  Boolean snbkp = true;
	  // Cria diretório
	  if(!diretorio.isDirectory()) new File("D:/SDO-Backup").mkdir();
	  // Cria Arquivo de Backup
	  try {
	  	  if (arquivo.isFile()){ 
			  if(JOptionPane.showConfirmDialog(null,"Ja foi criado backup hoje, deseja substituir ?","Backup ja existe",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION)
			  { 
				  arquivo.delete();
				  snbkp = true;
			  }
			  else
			  {
				  snbkp = false;
			  } 
		  }
		  	  
		  if(snbkp==true)
		  { 
			String comando = "C:\\Program Files (x86)\\MySQL\\MySQL Server 5.1\\bin\\mysqldump";
			ProcessBuilder pb = new ProcessBuilder(comando, "--user=root",
					"--password="+snh, banco, "--result-file=D:\\SDO-Backup\\bkp_" +banco+"_"+ano+
					  "_"+mes+"_"+dia+".sql");
			pb.start();
			int res = 0;
		  
		  if (res == 0)
			  JOptionPane.showMessageDialog(null,"Backup criado com Sucesso !");
		  else 	{
			  JOptionPane.showMessageDialog(null,"Falha ao criar Backup. \n Verifique as configurações ou entre em contato com o suporte !",
					  "Erro ao criar backup", JOptionPane.ERROR_MESSAGE);
		  	  } 
		  }
	  }
	  catch (IOException ex) {
		  ex.printStackTrace();
		  System.out.println(ex); 
		  JOptionPane.showMessageDialog(null,"Erro na criação do Backup !");
	  } catch(Exception err){
		  System.out.println(err);
		  JOptionPane.showMessageDialog(null,"Erro na criação do Backup !");
	  }
	  
}

Obrigado pelo código que você me disponibilizou, mas gostaria de saber qual é o motivo do meu código não funcionar…sendo que eu estou fazendo mais para motivo de aprendizagem mesmo.