Java 进程完成时发送sysout消息

Java 进程完成时发送sysout消息,java,swing,Java,Swing,这是我当前的代码: ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", cmd1 + " && " + cmd2 + " && " + cmd3 + " && " + cmd4 + " && " + cmd5 + " && " + cmd6 );

这是我当前的代码:

ProcessBuilder builder = new ProcessBuilder(
                        "cmd.exe", "/c", cmd1 + " && " + cmd2 + " && " + cmd3 + " && " + cmd4 + " && " + cmd5 + " && " + cmd6
                );
                builder.directory(new File(workspace.toString()));
                builder.redirectErrorStream(true);
                Process p = builder.start();
                BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
                String line;
                while(true) {
                    line = r.readLine();
                    if(line == null) {
                        break;
                    }
                    //textPanel.appendText(line);
                    System.err.println(line);
                    textPanel.appendText(line);

                }
如何检查是否所有命令都已成功执行,并且在cmd6完成后,它会发送sysout消息


我还没有弄明白怎么做…

这将只启动一个命令,所以我相信只有一个查询(无法测试)。因此,它是否会失败。若要查看此操作何时失败,您需要分别运行每个命令。@AxelH但这些命令将在前一个命令成功完成后执行,对吗?还是我看错了文件??如果是这样,我可以发送一个
p.waitFor();/消息
,当所有命令完成后,该消息将发送一条消息。正确吗?您可以简单地测试;)我没有准备好环境,但您只需要生成一个进程来执行cmd查询。因此,这将仅由该进程管理。从一小段代码中,您要么将阻止EDT(阻止它更新UI),要么违反Swing@MadProgrammer是的,所以一旦我尝试了它,软件就停止运行,直到出现故障。我怎样才能防止这种情况?