如何检查正在运行的特定Windows服务

时间:2014-02-05 01:16:36

标签: java

我需要检查给定的Windows服务是否说“XYZService”正常运行。

据我所知,我们可以发出“sc query”命令并检查它的状态,windows命令提示符。

但我不知道在java中怎么做。

我在我的应用程序中使用JDK1.6。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这对我有用:

public boolean isProcessRunning(final String processName) throws Exception{
    final Process process = Runtime.getRuntime().exec("tasklist");
    final Scanner reader = new Scanner(process.getInputStream(), "UTF-8");
    while(reader.hasNextLine())
        if(reader.nextLine().startsWith(processName))
            return true;
    return false;
}

注意:使用上述方法,您必须输入确切的进程名称(区分大小写)。 这是表格的样子:

enter image description here

答案 1 :(得分:0)

下面是验证服务的正确代码!

     Process process = Runtime.getRuntime().exec("sc query "+nameOfService);
    Scanner reader = new Scanner(process.getInputStream(), "UTF-8");
    while(reader.hasNextLine())
        if(reader.nextLine().contains(serviceNAME))
            return true;
    return false;