Hoy les traigo una forma de poder ejecutar un comando de consola en Java. La clave para ejecutar un comando en Java esta en los métodos exec(String command) y exec(String[] cmdarray).
La diferencia entre estos dos métodos Java es que el primero esta destinado a ejecutar comandos sin argumentos:
try {
String cmd = "halt"; //Comando de apagado en linux
Runtime.getRuntime().exec(cmd);
} catch (IOException ioe) {
System.out.println (ioe);
}
Y el segundo si, solo que deben poner cada ‘palabra’ en un índice distinto en el arreglo Java:
try {
String [] cmd = {"shutdown","-s","-t", "10"}; //Comando de apagado en windows
Runtime.getRuntime().exec(cmd);
} catch (IOException ioe) {
System.out.println (ioe);
}
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 metodo public abstract InputStream getInputStream(), ya que con él podemos obtener un Stream para poder leer lo que el comando que ejecutamos escribío en la consola.
Process process = Runtime.getRuntime().exec("lsb_release -a");
InputStream inputstream = process.getInputStream();
BufferedInputStream bufferedinputstream = new BufferedInputStream(inputstream);
En mi caso, obtuve el siguiente texto al leer las lineas del buffer.
Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: 11.10 Codename: oneiric
Espero que les haya gustado el artículo.