Как запустить команду Linux «netstat» из программы Java? - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть клиент-серверный проект, написанный на Java, в котором они подключаются через сокеты. Я не могу понять, как запустить «netstat» со стороны сервера моего кода Java.

1 Ответ

1 голос
/ 05 февраля 2020

К сожалению, нет эквивалента netstat, доступного непосредственно в java.

Вы можете использовать API процесса, чтобы порождать новый процесс и проверять вывод.

Я буду использовать пример из следующий q / a: { ссылка }

Я изменил его на вызов netstat. После запуска процесса вам также нужно будет прочитать вывод и проанализировать его.

Runtime rt = Runtime.getRuntime();
String[] commands = {"netstat", ""};
Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new 
     InputStreamReader(proc.getInputStream()));

BufferedReader stdError = new BufferedReader(new 
     InputStreamReader(proc.getErrorStream()));

// Read the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}

// Read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}

Источник: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...