Fazendo backup oracle via Java

(a intenção era ter postado no java iniciante, se alguem puder mover fico grato)

Boa Tarde Pessoal,

Estou escrevendo um programa para fazer backup oracle via java e enviar via scp para um outro servidor, as duas partes estão funcionando(então que que eu estou fazendo aqui?rs)porém tenho que esperar o backup terminar para ai sim transferi-lo ao servidor… ae que começa meu parto…
não consigo identificar quando o processo do exp termina, já tentei de várias formas, com thread e com inputstream porém nada…
alguem tem alguma ideia?
segue meu código

String s = "usuario/senha@XE file=\"" + scp.getArquivo() + ".dmp\""
                    + " owner=" + ownerlist + " log=" + scp.getArquivo() + ".log";
            String command = "C:\\oraclexe\\app\\oracle\\product\\10.2.0\\server\\BIN\\exp.exe " + s;
            //String command = "C:\\dmp\\bat.bat";
            Process p = Runtime.getRuntime().exec(command);
            p.waitFor();

percebo que o processo exp.exe fica travado, ele cria um arquivo .dmp de 2 kb e nada, não continua a execução, nas três formas que eu fiz o comportamento é o mesmo, porém se eu mato a execução do java o exp continua normalmente e gera o backup.

PS: aquele comentario com o bat é uma outra tentativa de tentar criar um bat pra tentar monitorar pensando ser problema do exp, mas acredito que está me faltando dedo mesmo.

Obrigado