En esta ocasión voy a explicar lo básico para crear un Proceso en Java. Un proceso es un programa o una parte de este programa, que hace un cálculo o función. Normalmente estos programas se comunican con otros a través de flujos en XML o JSON. Para programar nuestro primer proceso que llama a otro proceso o «pippe», vamos a escribir el siguiente código;
String prog = "programa.jar";
Runtime r = Runtime.getRuntime();
Process proceso = r.exec("java -jar " + prog);;
Ahora vamos a explicar cómo hacer esto mismo pero de otra manera. Esta otra manera es más versátil, y se pueden hacer cosas aún más chulas, que con el comando anterior, se pueden hasta emplear otros procesos dentro de otros procesos. Antes de nada me gustaría explicar qué son los argumentos, y para qué se utilizan.Cuando escribimos un comando en Linus, este tiende a ser algo así:
ffmpeg -i input.mpg output.mp4
ffmpeg es el programa, y el resto de las opciones se llaman argumentos, que no dejan de ser opciones dentro del mismo programa. En Java todo va por la variable args, para unificar todos los argumentos podemos hacerlo con:
String str="";
for (int i=0;i<args.length;i++){
str=str+" "+args[i];
}
Una vez visto esto, podremos hacer un split(» «), y ahora vemos el segundo tipo de comando:
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command(arraySplit);
Process proceso = processBuilder.start();
Bien lo siguiente, y es lo más interesante es obtener todo lo que devuelve el comando. Para ello hará falta las siguientes clases/comandos:
//Ejecutamos el proceso
try (BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(proceso.getOutputStream()))) {
bufferedWriter.write("\n");
bufferedWriter.flush();
}
//mostramos los resultados
try(BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(proceso.getInputStream()))){
texto=bufferedReader.readLine();
System.out.println(texto);
}
Hasta aquí dejo el tutorial de hoy, si tenéis alguna inquietud, ya sabéis que podéis contactar conmigo, para cualquier cosa estoy por aquí. Si necesitais clases o formación online, estes estudiando en instituto, universidad o simplemente seas autodidacta, puedes contactar conmigo y te puedo ayudar. Muchas gracias por todo, un saludo y hasta la próxima, chao.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.