Очередь команд Nmap в видимом окне командной строки на Java - PullRequest
0 голосов
/ 03 сентября 2010

Я пытаюсь запустить несколько команд 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();
    }

1 Ответ

0 голосов
/ 03 сентября 2010

Это потому, что вы делаете «старт». Процесс запустит еще один для обработки команды nmap и завершится, не дожидаясь завершения этого дочернего процесса.

При удалении «start» окна должны показываться одно за другим.

...