Java: Warten Sie, bis der Exec-Prozess beendet ist

Ich führe ein Java-Programm in Windows aus, das Protokolle von Windows-Ereignissen sammelt. Es wird eine CSV-Datei erstellt, für die bestimmte Vorgänge ausgeführt werden sollen.

Die Befehle werden ausgeführt und weitergeleitet. Wie kann ich mein Java-Programm warten lassen, bis der Vorgang abgeschlossen ist?

Hier ist das Code-Snippet, das ich verwende:

Runtime commandPrompt = Runtime.getRuntime();
try {           
    Process powershell = commandPrompt.exec("powershell -Command \"get-winevent -FilterHashTable @{ logname = 'Microsoft-Windows-PrintService/Operational';StartTime = '"+givenDate+" 12:00:01 AM'; EndTime = '"+beforeDay+" 23:59:59 ';  ID = 307 ;} | ConvertTo-csv| Out-file "+ file +"\"");
//I have tried waitFor() here but that does not seem to work, required command is executed but is still blocked
} catch (IOException e) { }
// Remaining code should get executed only after above is completed.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage