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是的,所以一旦我尝试了它,软件就停止运行,直到出现故障。我怎样才能防止这种情况?