Ejecutar comandos Linux y MS-Dos desde Java
Poder controlar nuestro sistema desde el código de programación puede resultar muy útil en muchos casos. Así como el hecho de conseguir información, por ejemplo, de la configuración de nuestra red para usarlo en nuestras aplicaciones. Ése es el caso que nos ocupa ahora: queremos obtener nuestra dirección IP y configuración de red desde Java. Además, aprovechando la portabilidad de este lenguaje, haremos que la aplicación funcione tanto en Linux, como en Windows.
El código
import java.io.*;
public class EjecutarComando {
public static void main(String args[]) {
String s = null;
try {
// Determinar en qué SO estamos
String so = System.getProperty("os.name");
String comando;
// Comando para Linux
if (so.equals("Linux"))
comando = "ifconfig";
// Comando para Windows
else
comando = "cmd /c ipconfig";
// Ejcutamos el comando
Process p = Runtime.getRuntime().exec(comando);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(
p.getErrorStream()));
// Leemos la salida del comando
System.out.println("Ésta es la salida standard del comando:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// Leemos los errores si los hubiera
System.out
.println("Ésta es la salida standard de error del comando (si la hay):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
System.exit(0);
} catch (IOException e) {
System.out.println("Excepción: ");
e.printStackTrace();
System.exit(-1);
}
}
}
Tweet