Tôi đang chạy một chương trình java trong Windows thu thập nhật ký từ các sự kiện Windows. Tệp .csv được tạo trên đó một số hoạt động nhất định sẽ được thực hiện.Java: đợi cho quá trình thực hiện cho đến khi nó thoát
Các lệnh được thực hiện và đường ống. Làm thế nào tôi có thể khiến chương trình Java của tôi đợi đến khi quá trình kết thúc?
Dưới đây là đoạn mã tôi đang sử dụng:
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.
Hoặc bạn có thể xem xét sử dụng Commons-exec: http://commons.apache.org/exec/tutorial .html –