java - 如何从我的 java 程序执行 zookeeper-server-start .bat 文件?
问题描述
我正在尝试从我的 java 代码中启动 zookeeper 和 kafka 服务器。我们通常手动执行批处理文件,我正在尝试自动化但服务器永远不会启动。
我曾尝试使用相同的代码运行其他 .bat 文件,它们运行起来就像一个魅力,但 zookeeper 和 kafka-server 永远不会成功执行,也不会抛出任何错误
Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c",
"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"});
我希望 zookeeper 服务器启动并保持启动,而它没有。请帮助我哪里出错了,这甚至可能吗?
解决方案
我完全不知道为什么,但是添加“开始”标志使它对我有用。现在我可以在代码中同时运行 zookeeper 和 kafka 服务器。我正在使用的代码如下,
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"});
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"});
推荐阅读
- c# - C#:阻止 WebBrowser 中的证书选择窗口
- c# - 调试时进程内存增加
- docker - Docker 参数化内部传递的文件
- node.js - 终端进度条未显示在 Docker 控制台中。
- git - git 添加比想要提交更多的文件
- python - Python Sanic 或 Async 框架使用 Asgiref 的原因?
- java - 如何在主类中调用 ResponseDefinitionTransformer
- c# - 将 Ninject ToConstant 转换为简单的注入器实现
- r - 在 par() 函数中设置轴的 lwd
- c# - c# FileHelpers 将具有可变长度行的 csv 加载到 DataTable 中