Ejecutar un comando externo en Java

Para invocar un ejecutable externo basta hacer uso de las utilidades de la maquina virtual, en este caso java.lang.Runtime, por ejemplo si queremos tener una clase que ejecute un comando y capturar la salida del mismo podemos utilizar la siguiente clase:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class CLIManager {
 
    public static ArrayList execCommand(String command) throws IOException {
        ArrayList cmdOutput = new ArrayList<>();
        Process p = Runtime.getRuntime().exec(command);
        BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String tmpLine = "";
        while ((tmpLine = bri.readLine()) != null) {
            cmdOutput.add(tmpLine);
        }
 
        return cmdOutput;
    }
}

En sintesis la clase ejecuta la llamada al programa externo mediante Runtime.getRuntime().exec y luego captura su salida mediante un InputStreamReader y la devuelve convenientemente en una estructura dinamica con el resultado de la operacion (n lineas). Como parte de un proyecto mayor podemos hacer alguna cosa mas interesante como una simple interfaz GUI que ejecute comandos hacia la CLI del sistema (independiente de sistema operativo) y muestre el resultado en pantalla 🙂

Proyecto completo en Java:

CLIGui.tar.gz

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *