Java-Programm zum Ausführen eines Befehls, der viel Zeit in Anspruch nimmt
Ich habe viele Beispiele gelesen und den folgenden Code verwendet, um einen Befehlszeilenbefehl aus einem Java-Programm heraus auszuführen.
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);
}
}
}
Ich habe es mit einem einfachen ls-Befehl getestet und es funktioniert gut. Wenn ich versuche, einen anderen Befehl auszuführen, dauert es ewig (läuft 25 Minuten und ist noch nicht beendet).
Wenn ich einen Tabix-Befehl in der Befehlszeile ausführe, erhalte ich die folgenden Statistiken
4,173u 0,012s 0: 04,22 99,0% 0 + 0k 0 + 0io 0pf + 0w
ann sollte es schnell gehe
Der Befehl lautet
time tabix file pos1 pos2 ... pos190> / dev / null
Kann das Problem sein, dass der Befehl tabix @ enthä> /dev/null
Am Ende? Wenn nicht, was könnte dieses Problem verursachen?