Как получить идентификатор процесса tomcat по порту и завершить этот процесс - PullRequest
0 голосов
/ 28 ноября 2018

Согласно приведенному ниже коду, я пытаюсь получить идентификатор процесса tomcat по порту и завершить этот процесс.Мне дали эту команду в CMD, но я привык, что Java не работает.Я хочу исправить путь, пожалуйста, помогите мне

try {
   Runtime rt = Runtime.getRuntime();
   Process proc = rt.exec("netstat -aon | find /i \"listening\"");
   InputStream stdin = proc.getInputStream();
   InputStreamReader isr = new InputStreamReader(stdin);
   BufferedReader br = new BufferedReader(isr);
   String line = null;
   System.out.println("<OUTPUT>");

    while ( (line = br.readLine()) != null)
       System.out.println(line);

       System.out.println("</OUTPUT>");
       int exitVal = proc.waitFor();
       System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t) {
      t.printStackTrace();
  }

1 Ответ

0 голосов
/ 28 ноября 2018

Если вы используете Windows, это будет так.Я не тестировал Linux, но он должен работать, я думаю, если вы проверите прокомментировал код.

 public static void main(String[] args) throws IOException, InterruptedException {
        try {
            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec("cmd /c netstat -ano | findstr 8080");
            //for linux
            //Process proc = rt.exec("/bin/bash -c netstat -ano |grep 8080");

            BufferedReader bufferedReader = new BufferedReader(new
                    InputStreamReader(proc.getInputStream()));
            String line = null;
            System.out.println("<OUTPUT>");
            if ((line = bufferedReader.readLine()) != null) {
                int processIdString = line.lastIndexOf(" ");
                String processId = line.substring(processIdString, line.length());
                System.out.println("Your process Id to Kill : " + processId);
                rt.exec("cmd /c Taskkill /PID" + processId + " /T /F");
                //for linux
                //rt.exec("/bin/bash -c kill -9 "+processId);

            }
            System.out.println("<OUTPUT>");
        } catch (Exception e) {
            System.out.println("Error Occured");
        }
    }
...