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
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.
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.
- 1. Java: "UNIXProcess" -Fehler bei Verwendung von "exec" oder "ProcessBuilder", um einen Befehl auszuführen
- 2. Java ProcessBuilder Problem
- 3. Java ProcessBuilder ImageMagic konvertieren Befehl
- 4. Linux-Befehle von Java
- 5. Ausführen von Skripten über Processbuilder
- 6. Befehle anzeigen, ohne sie auszuführen
- 7. Verwenden von Java ProcessBuilder zum Ausführen eines Piped-Befehls
- 8. Verwendung von Java ProcessBuilder zum Ausführen von ./Dateiname in Linux
- 9. CCNx Java-Code Hilfe (ProcessBuilder)
- 10. Wie man easy_install ausführt, um benutzerdefinierte Befehle in setup.py auszuführen?
- 11. Führen Sie eine .java-Datei mit ProcessBuilder
- 12. Ausführen eines Jar von ProcessBuilder gibt ClassNotFoundException
- 13. Verwenden von Threads und ProcessBuilder
- 14. Vorgesehene Möglichkeit, Befehle als Abhängigkeiten auszuführen
- 15. Ausführen von cmd.exe-Befehle von Java
- 16. Mindestversion von Java erforderlich, um mein Applet auszuführen
- 17. ProcessBuilder auf Standardausgabe umgeleitet
- 18. Fehler beim Starten des Programms von Java (mit ProcessBuilder)
- 19. C-Code: Um ein Pty-Terminal mit dem aktuellen Prozess zu verbinden, um Befehle auszuführen
- 20. Wie in der Folge mehrere Batch-Befehle auszuführen
- 21. Backup von postgresql über ProcessBuilder erstellen
- 22. Java KeyTool Befehle nicht von Process Builder Tagrunnig
- 23. Starten Sie CMD mit ProcessBuilder
- 24. nicht in der Lage, R-Skript von Java-Programm auszuführen?
- 25. Windows-Java-Befehle in Linux-Java-Befehle konvertieren?
- 26. führen Sie interaktive Befehlszeilenanwendung von Java
- 27. Wie eine Variablen in R mehr Befehle auszuführen
- 28. Verwenden von Zeichenfolge, um Klassenunterroutine auszuführen
- 29. Triggerübergang, um replaceState anstelle von pushState auszuführen
- 30. Empfohlene Weise Befehle auszuführen, nachdem Abhängigkeiten in der virtualenv