複数の Nmap コマンドを次々と実行しようとしています。
理想的には、各 Nmap コマンドは独自のコマンド プロンプト ウィンドウで作成されます。Nmap コマンドが実行され、終了します。次に、別のコマンド プロンプトが表示され、次の Nmap コマンド、execute などが表示されます。
残念ながら、現在のプログラムの実行方法では、複数のコマンド プロンプト ウィンドウが同時にポップアップし、同時に実行されます。コマンドを一度に 1 つだけ実行したい。私は、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();
}