Clases de Utilidad Java VIII: Exec

Con estas dos clases podemos invocar tareas del sistema operativo de forma muy transparente

http://www.devdaily.com/java/edu/java-exec/SystemCommandExecutor.java

http://www.devdaily.com/java/edu/java-exec/ThreadedStreamHandler.java

En entornos Windows

/**

* Ejecuta una tarea en un sistema operativo windows

* @param line comando a ejecutar

*/

public static void execWin(String line){

List<String> commands = new ArrayList<String>();

commands.add("cmd");

commands.add("/c");

commands.add(line);

SystemCommandExecutor commandExecutor = new SystemCommandExecutor(commands);

try {

int result = commandExecutor.executeCommand();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

StringBuilder stdout = commandExecutor.getStandardOutputFromCommand();

StringBuilder stderr = commandExecutor.getStandardErrorFromCommand();

System.out.println("STDOUT");

System.out.println(stdout);

System.out.println("STDERR");

System.out.println(stderr);

}

En entornos Linux

/**

* Ejecuta una tarea en un sistema operativo Linux

* @param line comando a ejecutar

*/

public static void execLin(String line){

List<String> commands = new ArrayList<String>();

commands.add("/bin/sh");

commands.add("-c");

commands.add(line);

SystemCommandExecutor commandExecutor = new SystemCommandExecutor(commands);

try {

int result = commandExecutor.executeCommand();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

StringBuilder stdout = commandExecutor.getStandardOutputFromCommand();

StringBuilder stderr = commandExecutor.getStandardErrorFromCommand();

System.out.println("STDOUT");

System.out.println(stdout);

System.out.println("STDERR");

System.out.println(stderr);

}

/**

* Ejecuta una tarea en un sistema operativo Linux

* @param line comando a ajecutar

* @param adminPass clave de administracion del superusuario

*/

public static void execLin(String line, String adminPass){

List<String> commands = new ArrayList<String>();

commands.add("/bin/sh");

commands.add("-c");

commands.add(line);

SystemCommandExecutor commandExecutor = new SystemCommandExecutor(commands,adminPass);

try {

int result = commandExecutor.executeCommand();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

StringBuilder stdout = commandExecutor.getStandardOutputFromCommand();

StringBuilder stderr = commandExecutor.getStandardErrorFromCommand();

System.out.println("STDOUT");

System.out.println(stdout);

System.out.println("STDERR");

System.out.println(stderr);

}

Deja un comentario