我正在尝试一个接一个地运行多个 Nmap 命令。
理想情况下,每个 Nmap 命令都将在其自己的命令提示符窗口中创建。Nmap 命令将执行并完成。然后会出现另一个命令提示符,下一个 Nmap 命令,执行,等等。
不幸的是,程序当前运行的方式是同时弹出多个命令提示符窗口并同时执行。我希望命令一次只执行一个。我原以为 waitFor() 方法可以解决问题,但事实并非如此。我错过了什么吗?
我已经从我的实际程序中大大简化了这一点,以解决核心问题。任何帮助,将不胜感激。
try {
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "start", "nmap", targets, "-p 1- 65535", "-oN +output");
Process p = pb.start();
p.waitFor();
System.out.println("p done");
Process z = pb.start();
z.waitFor();
System.out.println("z done");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}