Fazer backup do postgre atraves do runtime

ola pessoal
estou com um problema ao efetuar o backup do meu banco atraves do metodo runtime. to conseguindo gerar o arquivo, porem o arquivo está em branco.
jah pesquisei em varios foruns aqui, porem n ficou claro pra mim.
s alguem puder m ajudar agradeço

aqui tah meu codigo

Runtime.getRuntime().exec("C:\Arquiv~1\Postgr~1\8.4\bin\pg_dump.exe -i -h localhost -p 5432 -U postgres -F c -b -v -f \"D:\Danilo Costa\teste.backup");

Qdo precisei fiz assim:

    public class Backup {  
        public void realizaBackup(){  
            Runtime r = Runtime.getRuntime();              
            try{  
                Process p = r.exec(" \"C:\Arquivos de programas\PostgreSQL\8.0\pgAdmin III\pg_dump.exe\" -i -h localhost -p 5432 -U user -F c -b -v -f \"C:\backup\bancodados.backup\" seubanco");  
                if(p != null){  
                   OutputStream outputStream = p.getOutputStream();  
                   outputStream.write("suasenha\r\n".getBytes());  
                   outputStream.flush();  
                   outputStream.close();  
                   InputStreamReader streamReader = new InputStreamReader( p.getErrorStream() );  
                   BufferedReader reader = new BufferedReader( streamReader );  
                   String linha;  
                   while( (linha = reader.readLine()) != null )  
                       System.out.println(linha);  
               }  
           } catch(IOException ioe){  
               ioe.printStackTrace();  
           }  
       }  
   }  

Parece que eh igual ao seu mas funciona aki.

executei esse codigo na minha aplicação, soh q deu no mesmo. gera o arquivo em branco.
e outra quando eu clico no botão que chama o metodo ele trava a tela. tenho q ir no gerenciador de tarefas e fechar o pg_dump, pra fechar a tela.

[code] public void backup()
{

        Runtime r = Runtime.getRuntime();
     try{
         Process p = r.exec(" \"C:\Arquiv~1\Postgr~1\8.4\bin\pg_dump.exe\" -i -h localhost -p 5432 -U escola -F c -b -v -f \"C:\Passivo\bk\bancodadosTeste.backup\" teste");
         if(p != null){
            OutputStream outputStream = p.getOutputStream();
            outputStream.write("12345\r\n".getBytes());
            outputStream.flush();
            outputStream.close();
            InputStreamReader streamReader = new InputStreamReader( p.getErrorStream() );
            BufferedReader reader = new BufferedReader( streamReader );
            String linha;
            while( (linha = reader.readLine()) != null )
                System.out.println(linha);
        }
    } catch(IOException ioe){
        ioe.printStackTrace();
    }[/code]

Fala brow,

Cara, se eu nao me engano, isso acontece porque o pg_dump.exe fica esperando a senha do usuario…

Da uma olhada aqui, acho que o cara conseguiu resolver:

http://www.guj.com.br/posts/list/207154.java

Abraco.