Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用检查正在运行的特定windows服务_Java - Fatal编程技术网

Java 如何使用检查正在运行的特定windows服务

Java 如何使用检查正在运行的特定windows服务,java,Java,我需要检查给定的windows服务是否显示“XYZ服务”运行正常 我知道我们可以发出“sc query”命令并检查其状态,windows命令提示符 但是我不知道用java怎么做 我在应用程序中使用JDK1.6 感谢您的帮助。这对我很有用: public boolean isProcessRunning(final String processName) throws Exception{ final Process process = Runtime.getRuntime().exec(

我需要检查给定的windows服务是否显示“XYZ服务”运行正常

我知道我们可以发出“sc query”命令并检查其状态,windows命令提示符

但是我不知道用java怎么做

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

感谢您的帮助。

这对我很有用:

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;
}
注意:使用上述方法,您必须输入确切的进程名称(区分大小写)。 下面是该表的外观:


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

     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;

优秀@Josh M,这意味着如果服务未运行,它将不会显示,任务列表将仅显示正在运行?@mahesh正确:)任务列表仅显示活动服务和进程。测试后,它仅搜索当前正在运行的windows进程,而不是服务!