Categorías
Concurrency linux

Java Runtime.exec () Linux Pipe

Si desea utilizar las ventajas de las tuberías de Linux, puede hacerlo en Java.

Es posible que desee hacer lo siguiente, que es incorrecto.

String cmd = "ls"
Process p = Runtime.getRuntime().exec(cmd);

La forma correcta de ejecutar el comando de shell es la siguiente:

String[] cmd = {
"/bin/sh",
"-c",
"ls"
};
 
Process p = Runtime.getRuntime().exec(cmd);
InputStream i = p.getInputStream();
byte[] b = new byte[16];
i.read(b, 0, b.length); 
System.out.println(new String(b));

En este ejemplo, el programa simplemente imprime las cadenas. Pero en el uso real, puede alimentarlo con algún proceso complicado.

  Guía de 5 minutos para los comandos de Linux de uso común

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

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