Execute comandos adb de java

Eu quero empurrar um arquivo do meu programa Java para um emulador Android. Agora, posso iniciar o emulador usando o ProcessBuilder e também interceptar as mensagens do logcat. Mas sempre que estou tentando usar o comando adb push no criador de processos, o processo trava e nenhuma saída é gerada.

O código:

try {
    ProcessBuilder proc = new ProcessBuilder("D://android-sdk//platform-tools//adb.exe",
                                             "push D:\\final.xml /mnt/sdcard/final.xml");
    Process p = proc.start();
    BufferedReader br2 = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ( (line = br2.readLine()) != null)
        System.out.println(line);
} catch (Exception e) {
    System.err.println("Error");
}

EDIT: - Encontrei a solução provável. Eu estava usando o método Process.waitFor (), mas não armazenar seu código de saída retornado. Agora como eu fiz isso:

int exitVal = p.waitFor();

Tudo funcionou como um encanto.

E @Marc Van Daele Obrigado pela sua contribuição. De acordo com a minha experiência, ProcessBuilder funciona em ambos os sentidos ou seja. Você pode usar argumentos separados por espaços ou por vírgulas. :)