我需要检查给定的Windows服务是否说“XYZService”正常运行。
据我所知,我们可以发出“sc query”命令并检查它的状态,windows命令提示符。
但我不知道在java中怎么做。
我在我的应用程序中使用JDK1.6。
感谢任何帮助。
答案 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;
}
注意:使用上述方法,您必须输入确切的进程名称(区分大小写)。 这是表格的样子:
答案 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;