Ir al contenido

Como ejecutar un comando del sistema desde Java

Hoy les traigo una forma de poder ejecutar un comando de consola en Java. La clave para ejecutar un comando en Java está en los métodos exec(String command) y exec(String[] cmdarray).

La diferencia entre estos dos métodos Java es que el primero está destinado a ejecutar comandos sin argumentos:

Runtime.getRuntime().exec("dir");

Y el segundo sí, solo que deben poner cada palabra en un índice distinto en el arreglo Java:

String[] cmd = {"ping", "[google.com](http://google.com/)"};
Runtime.getRuntime().exec(cmd);

💡 Recordar que el comando se va a ejecutar en un proceso Java aparte.

Otra cosa a tener en cuenta es el retorno que brindan estos métodos. Para ello tenemos el objeto de tipo Process. La clase Process posee algunos métodos interesantes, en especial el método public abstract InputStream getInputStream(), ya que con él podemos obtener un Stream para poder leer lo que el comando que ejecutamos escribió en la consola.

Process p = Runtime.getRuntime().exec("dir");
InputStream in = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String linea;
while ((linea = br.readLine()) != null) {
System.out.println(linea);
}

En mi caso, obtuve el siguiente texto al leer las líneas del buffer:

Ventana de terminal
El volumen de la unidad C es OS
El número de serie del volumen es: 123A-45B6
Ventana de terminal
Directorio de C:\Users\Feffo\Desktop
09/04/2012 06:00 AM <DIR> .
09/04/2012 06:00 AM <DIR> ..
0 archivos 0 bytes
2 dirs 10,485,760,000 bytes libres

Espero que les haya gustado el artículo.

Descarga el código de Como ejecutar un comando del sistema desde Java

Como ejecutar un comando del sistema desde Java y leer la respuesta devuelta por dicho comando.

Descargar código