1. La diferencia entre estos dos métodos Java es que el primero esta destinado a ejecutar
comandos sin argumentos:
1. try {
2. String cmd = "halt"; //Comando de apagado en linux
3. Runtime.getRuntime().exec(cmd);
4. } catch (IOException ioe) {
5. System.out.println (ioe);
6. }
Y el segundo si, solo que deben poner cada 'palabra' en un índice distinto en el arreglo Java:
1. try {
2. String [] cmd = {"shutdown","-s","-t", "10"}; //Comando de apagado en
windows
3. Runtime.getRuntime().exec(cmd);
4. } catch (IOException ioe) {
5. System.out.println (ioe);
6. }
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 tipoProcess.
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.
1. Process process = Runtime.getRuntime().exec("lsb_release -a");
2. InputStream inputstream = process.getInputStream();
3. BufferedInputStream bufferedinputstream = new
BufferedInputStream(inputstream);
En mi caso, obtuve el siguiente texto al leer las lineas del buffer.