Ejecucion de Comandos Windows desde Java

cmd y java

En algún momento de nuestra vida como Programadores Java necesitaremos ejecutar algún comando interno del Sistema Operativo o quizás ejecutar algún archivo por lotes o script.
Esta tarea en Java resulta muy sencilla y ademas podemos hacer una ejecución silenciosa del comando o captar su salida para informar al usuario.

Como siempre digo… menos teoría y más practica. Si queremos hacer la ejecución básica y “silenciosa” de un comando tan solo deberemos llamar al objeto Process de Java y decirle que ejecute el comando de la siguiente forma:

try {
	Process proceso = Runtime.getRuntime().exec("cmd /c whoami");
} catch (IOException e) {
        e.printStackTrace();
}

Se ve  fácil no?

Realmente no tiene nada de complicado, pero…  ¿y si queremos mostrar al usuario la salida del comando?
Pues es muy sencillo tan solo deberemos utilizar las clases InputStreamReader y BufferedReader de la siguiente forma, a continuación os dejo el código completo del programa para que veas que es muy fácil de utiliza.

import java.io.*;
public class Comandos {
	public static void main(String[] args) {

        String salida = null;
        String comando = "cmd /c tree";

        try{

            // Ejecucion Basica del Comando
            Process proceso = Runtime.getRuntime().exec(comando);

            InputStreamReader entrada = new InputStreamReader(proceso.getInputStream());
            BufferedReader stdInput = new BufferedReader(entrada);

            //Si el comando tiene una salida la mostramos
            if((salida=stdInput.readLine()) != null){
            	System.out.println("Comando ejecutado Correctamente");
            	while ((salida=stdInput.readLine()) != null){
                	System.out.println(salida);
                }
            }else{
            	System.out.println("No se a producido ninguna salida");
            }
        }catch (IOException e) {
                System.out.println("Excepción: ");
                e.printStackTrace();
        }
	}
}

Y esto es todo, tan fácil y sencillo, espero que os haya gustado, y no te olvides de Compartir en las redes Sociales

Puedes encontrar más Artículos sobre Programación Java – Aqui

8 comentarios

  • “espero que os haYa gustado”.

  • Buen dia amigo fijate que ejecuto un .bat con tu codigo y si lo hago manualmente veo que me lanza un Exception pero si lo ejecuto desde NetBeans no la veo y solo se queda parpadeando el cursor pero nunca termina el proceso, que me sugieres hacer en ese caso?

  • Si no me equivoco este código no muestra en su salida la primera línea de salida del proceso, puesto que en el if lo asignas, pero luego escribes otra cosa y luego vuelves a leer; es decir, nunca escribes primera línea de salida del proceso nuevo

    Saludos

  • Hola amigo, hace rato ando buscando una forma de abrir la cmd(no ejecutar comandos) desde java, para un proyecto q tengo en mente. En todos lados sale como ejecutar y obtener los resultados de los comandos de cmd, yo solo quiero abrir la venta cuando ejecute un script. Gracias y saludos…

Deja un comentario

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