我正在从Java应用程序启动Zookeeper和Kafka服务器。
如果我尝试使用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进程?
答案 0 :(得分:1)
尝试
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();