Я пытаюсь запустить несколько команд Nmap одну за другой.
В идеале каждая команда Nmap должна создаваться в собственном окне командной строки. Команда Nmap будет выполнена и завершена. Затем появится другая командная строка со следующей командой Nmap, execute и так далее и так далее.
К сожалению, из-за того, как работает программа в настоящее время, одновременно всплывают несколько окон командной строки и выполняются одновременно. Я хочу, чтобы команды выполнялись только по одной за раз. Я думал, что метод 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();
}