gpt4 book ai didi

java - 需要一种以编程方式检查 Windows 服务状态的方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:01 29 4
gpt4 key购买 nike

情况是这样的:

我被要求使用 InstallAnywhere 8,这是一种基于 Java 的安装程序 IDE,允许启动和停止 Windows 服务,但没有内置方法来查询它们的状态。幸运的是,它允许您在 Java 中创建可以在安装过程中随时调用的自定义操作(通过我认为是相当复杂的 API)。

我只需要一些东西来告诉我特定服务是启动还是停止。

IDE 还允许调用批处理脚本,所以这也是一个选项,尽管一旦脚本运行,几乎没有办法验证它是否成功,所以我试图避免这种情况。

欢迎任何建议或批评。

最佳答案

这是我必须做的。它很丑,但效果很好。

String STATE_PREFIX = "STATE              : ";

String s = runProcess("sc query \""+serviceName+"\"");
// check that the temp string contains the status prefix
int ix = s.indexOf(STATE_PREFIX);
if (ix >= 0) {
// compare status number to one of the states
String stateStr = s.substring(ix+STATE_PREFIX.length(), ix+STATE_PREFIX.length() + 1);
int state = Integer.parseInt(stateStr);
switch(state) {
case (1): // service stopped
break;
case (4): // service started
break;
}
}

runProcess 是一个私有(private)方法,它将给定的字符串作为命令行进程运行并返回结果输出。正如我所说,丑陋,但有效。希望这会有所帮助。

关于java - 需要一种以编程方式检查 Windows 服务状态的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/334471/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com