2012-04-11 15 views
3

Ich benutze einen Shell-Befehl aus Java-Code mit ProcessBuilder.start() Ich brauche einen Rückruf (oder eine Art Benachrichtigung), wenn der Befehl die Ausführung beendet. Der Befehl dauert 10-15 Sekunden zur Ausführung. Ist es möglich, ProcessBuilder zu verwenden?processbuilder, um Befehle von Java auszuführen

Antwort

4

Die start() Methode von ProcessBuilder gibt eindeutig an, dass sie einen Prozess zurückgibt, dessen API here ist. Dieser Prozess verfügt über Methoden, die aufgerufen werden können, einschließlich waitFor, wodurch der aktuelle Thread aktiviert wird, wenn der Prozess beendet wurde. Alles, was Sie tun müssen, ist einen Thread zu starten, geben Sie diesen Prozess und lassen Sie es signalisieren, wenn der Prozess endet, oder nach einer Zeitüberschreitung.

4

Ja, es ist möglich. Sie können waitFor() auf dem Prozess aufrufen und warten, bis es zurückgegeben wird, und dann den zurückgegebenen Wert analysieren, um sicherzustellen, dass es 0 ist, oder wenn nicht auf den Fehler reagiert wird. Dies geschieht oft in einem Hintergrund-Thread, um den aktuellen Thread nicht zu binden.

Verwandte Themen