Я пытаюсь прочитать данные в реальном времени из процесса с помощью BufferedReader и перенаправить их в TextArea. Тем не менее, я заметил, что когда процесс запускает .bat, он имеет тенденцию зависать и приводить к задержке в JavaFX TextArea. Поле «.bat», которое работает, выводит .....
одну строку, чтобы указать прогресс, и я считаю, что это то, где оно терпит неудачу.
У меня была идея, чтобы программа подождала определенное количество времени, затем она запустилась, но из-за того, что она все в одной строке, она также перестала работать. Пожалуйста, помогите
Код:
while(iterator.hasNext()) {
Map.Entry mentry = (Map.Entry)iterator.next();
String taskPath = " /k d: && cd DATA\\Virtualization\\Users && ESXRun.bat";
ProcessBuilder pb = new ProcessBuilder("cmd",taskPath);
Process process = pb.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s = "";
// read the output from the command
while ((s = stdInput.readLine()) != null) {
//TextArea
cliLog.appendText(s);
cliLog.appendText("\n");
}
process.waitFor();
process.destroy();
}