varios ejecutar desde comandos comando java output-redirect

ejecutar varios comandos cmd desde java



Cómo ejecutar comandos del sistema(linux/bsd) usando Java (4)

Estoy intentando ser barato y ejecutar un comando del sistema local ( uname -a ) en Java. Estoy buscando tomar el resultado de uname y almacenarlo en una cadena. Cual es la mejor manera de hacer esto? Código actual:

public class lame { public static void main(String args[]) { try { Process p = Runtime.getRuntime().exec("uname -a"); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line=reader.readLine(); while (line != null) { System.out.println(line); line = reader.readLine(); } } catch(IOException e1) {} catch(InterruptedException e2) {} System.out.println("finished."); } }


Esa es la mejor manera de hacerlo. También puede usar ProcessBuilder que tiene un constructor de argumento variable, por lo que podría guardar una línea o dos de código


Lo que estás haciendo se ve bien. Si su comando solo está devolviendo una sola cadena, no necesita el ciclo while, simplemente almacene el valor de reader.readLine () en una única variable String.

Además, probablemente deba hacer algo con esas excepciones, en lugar de simplemente tragárselos.



Tu camino no está muy lejos de lo que probablemente haría:

Runtime r = Runtime.getRuntime(); Process p = r.exec("uname -a"); p.waitFor(); BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = ""; while ((line = b.readLine()) != null) { System.out.println(line); } b.close();

Maneje las excepciones que le interesan, por supuesto.