I am trying to run an async process and I do not want the program to wait until the end of these processes executions. I found this question how to run shell script asynchro
You are reading the output streams of your process, and thats the reason your java program does not exit:
printStream(process.getErrorStream(), true);
printStream(process.getInputStream(), true);
Your stream reading will keep blocking your code.
You may like to redirect output of your launched process to a log file and read that later.