2015-12-23 3 views
0

Я использую построитель процессов для запуска пакетных файлов, и я пытаюсь получить индикатор выполнения и текстовое поле для обновления после завершения каждого командного файла.Запуск пакетных файлов в 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(); 
    } 
} 

ответ

Смежные вопросы