Ejecutar comandos adb desde java

Quiero enviar un archivo de mi programa Java a un emulador de Android. Ahora, puedo iniciar el emulador utilizando ProcessBuilder y también capturar los mensajes logcat. Pero cuando intento utilizar el comando adb push en el generador de procesos, el proceso se bloquea y no se genera ningún resultado.

El 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");
}

EDITAR: - Encontré la solución probabble. Estaba usando el método Process.waitFor () pero no estaba almacenando su código de salida devuelto. Ahora como hice esto:

int exitVal = p.waitFor();

Todo funcionó a la perfección.

Y @Marc Van Daele Gracias por tu aporte. Según mi experiencia, ProcessBuilder funciona de dos maneras, es decir. Puedes usar argumentos separados por espacios o comas. :)

Respuestas a la pregunta(1)

Su respuesta a la pregunta