Programa Java para ejecutar un comando que lleva mucho tiempo
He leído muchos ejemplos y terminé usando el siguiente código para ejecutar un comando de línea de comando desde el interior de un programa Java.
public static void executeCommand(final String command) throws IOException,
InterruptedException {
System.out.println("Executing command " + command);
final Runtime r = Runtime.getRuntime();
final Process p = r.exec(command);
System.out.println("waiting for the process");
p.waitFor();
System.out.println("waiting done");
try (final BufferedReader b = new BufferedReader(new InputStreamReader(
p.getInputStream()))) {
String line;
while ((line = b.readLine()) != null) {
System.out.println(line);
}
}
}
Lo he probado con un simple comando ls y funciona bien. Cuando intento ejecutar otro comando, me lleva una eternidad (se mantuvo en funcionamiento durante 25 minutos y aún no se detuvo).
Cuando ejecuto un comando tabix en la línea de comando, obtengo las siguientes estadísticas
4.173u 0.012s 0: 04.22 99.0% 0 + 0k 0 + 0io 0pf + 0w
Por lo tanto, debe terminar rápido.
El comando es
archivo tabix de tiempo pos1 pos2 ... pos190> / dev / null
¿Podría ser el problema que el comando tabix incluya> /dev/null
¿al final? Si no, ¿qué podría causar este problema?