Выполнять команды ADB из Java

Я хочу отправить файл из моей Java-программы в эмулятор Android. Теперь я могу запустить эмулятор с помощью ProcessBuilder, а также перехватывать сообщения logcat. Но всякий раз, когда я пытаюсь использовать команду adb push в компоновщике процессов, процесс зависает, и выходные данные не генерируются.

Код:

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

РЕДАКТИРОВАТЬ:- Нашел вероятное решение. Я использовал метод Process.waitFor (), но не сохранял возвращенный код выхода. Теперь, когда я сделал это:

int exitVal = p.waitFor();

Все работало как шарм.

И @Marc Van Daele Спасибо за ваш вклад. Согласно моему опыту, ProcessBuilder работает в обоих направлениях, т.е. Вы можете использовать аргументы, разделенные пробелами или запятыми. :)

Ответы на вопрос(1)

Ваш ответ на вопрос