El ZT Prozess Ausführender Bibliothek ist eine Alternative zu Apache Commons Exec. Sie verfügt über Funktionen zur Ausführung von Befehlen, zur Aufzeichnung ihrer Ausgabe, zur Einstellung von Timeouts usw.
Ich habe es noch nicht benutzt, aber es scheint recht gut dokumentiert zu sein.
Ein Beispiel aus der Dokumentation: Ausführen eines Befehls, Pumpen des stderr in einen Logger, Rückgabe der Ausgabe als UTF8-String.
String output = new ProcessExecutor().command("java", "-version")
.redirectError(Slf4jStream.of(getClass()).asInfo())
.readOutput(true).execute()
.outputUTF8();
In der Dokumentation werden die folgenden Vorteile gegenüber Commons Exec aufgeführt:
- Verbesserte Handhabung von Streams
- Lesen/Schreiben in Streams
- Umleitung von stderr nach stdout
- Verbesserte Behandlung von Timeouts
- Verbesserte Überprüfung von Exit-Codes
- Verbesserte API
- Einzeiler für recht komplexe Anwendungsfälle
- Einzeiler, um die Prozessausgabe in einen String zu übertragen
- Zugang zum Prozess Objekt vorhanden
- Unterstützung für asynchrone Prozesse ( Zukunft )
- Verbesserte Protokollierung mit SLF4J API
- Unterstützung für mehrere Prozesse