我正在使用流程构建器来运行批处理文件,我正在尝试在每个批处理文件完成后获取进度条和textarea以进行更新。
问题是,进度条和文本区域在所有三个批处理文件完全完成后才会更新,然后它只显示进度条和文本区域的最后一次更新(我猜它是全部完成的)立刻和最后一个progressbar.setValue over骑前面的值)
这是运行三个批处理文件之一的方法之一:
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();
}
}
答案 0 :(得分:1)