Как убить процесс cmd, который был запущен из моего приложения Java? - PullRequest
0 голосов
/ 18 апреля 2019

Я запускаю зоопарка и сервер Kafka из Java-приложения.

Если я попытаюсь уничтожить эти процессы, используя метод destroyForcibly(), ничего не произойдет. - Я пытался использовать оба метода destroy() и destroyForcibly(), но, похоже, ни один из них не работает.

Process p1 = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "start",
    "C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/bin/windows/zookeeper-server-start.bat",
    "C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/config/zookeeper.properties"});


Thread.sleep(3000);

Process p2 = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "start",
    "C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/bin/windows/kafka-server-start.bat",
    "C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/config/server.properties"});


Thread.sleep(5000);

p1.destroyForcibly();
p2.destroyForcibly();

Можно ли программно завершать процессы cmd?

1 Ответ

1 голос
/ 18 апреля 2019

Попробуйте

Process p1 = new ProcessBuilder("C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/bin/windows/zookeeper-server-start.bat",
"C:/kafka_2.11-2.1.0/kafka_2.11-2.1.0/config/zookeeper.properties")
            .redirectOutput(ProcessBuilder.Redirect.DISCARD)
            .redirectError(ProcessBuilder.Redirect.DISCARD)
            .start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...