Ola Pessoal
Já procurei aqui no fórum em vários tópicos e ninguém tem a solução ideal.
Estou tentando escrever um método Java que faça o Dump de um banco de dados em PostgreSQL no Windows, da seguinte forma:
private boolean efetuarBackupPostgres() {
String arquivoDump = "C:\\Program Files (x86)\\pgAdmin III\\1.12\\pg_dump.exe";
String arquivoBkp = new File("dados/database" + Util.dateDataToString(new Date(), "-yyyy-MM-dd-HH-mm-ss") + ".backup").getAbsolutePath();
String comando = "\"" + arquivoDump + "\" -h " + PersistenciaServices.host + " -p " + PersistenciaServices.porta + " -U " + PersistenciaServices.usuario + " -F plain -v -f \"" + arquivoBkp + "\" banco";
try {
Runtime.getRuntime().exec(comando); // ele passa por arqui, mas não termina o processo
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
O método funciona, ele não gera erro nem exceções.
Se eu entrar na pasta DADOS onde estou gravando o arquivo de “.backup” está lá criado o arquivo com 0 kbytes, porém quando eu fecho minha aplicação JAVA ele “destrava” o processo de DUMP e preenchedo o arquivo de “.backup” com as informações.
Resumindo, ele só faz o comando que passei no método “.exec()” depois que fecho a minha aplicação.
Alguém sabe como posso solucionar?
att
Douglas Junior