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. :)