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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage