Я использую построитель процессов для запуска пакетных файлов, и я пытаюсь получить индикатор выполнения и текстовое поле для обновления после завершения каждого командного файла.Запуск пакетных файлов в Java
Проблема заключается в том, что индикатор выполнения и область текста не обновляются до тех пор, пока все три командных файла не будут полностью завершены, тогда отобразится только последнее обновление в строке выполнения и текстовой области (я предполагаю, что это делается все сразу и последний progressbar.setValue над аттракционами предшествующая значения)
здесь один из способов запуска одного из трех пакетных файлов:
public void runBatch1() {
try {
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "cd \"C:\\batchfiles\" && batch1.bat");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputSteamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
jTextArea1.setText("Batch one finished.");
jProgressBar1.setValue(33);
}
} catch (Exception e) {
e.printStackTrace();
}
}