Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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_Windows Services_System Monitoring_System Status - Fatal编程技术网

在java中,有没有办法检查windows服务的状态?

在java中,有没有办法检查windows服务的状态?,java,windows-services,system-monitoring,system-status,Java,Windows Services,System Monitoring,System Status,我正在寻找一个库,它允许我查找windows服务的状态,以验证该服务是否已启动并正在运行。我查看了Sigar库,但它是GPL,因此我无法使用它。商业或BSD(ish)许可证是必需的,因为这将被捆绑到商业软件中。我不知道有任何库,但取决于您需要获得的详细信息,您可以使用一些shell命令和解析输出 网络启动服务名 将启动该服务,或返回一条错误消息,告诉您该服务已启动。不过,我不知道有哪条命令会给出状态。我认为没有任何纯Java的方法可以做到这一点,因为有些操作系统不像Windows那样具有“服务”

我正在寻找一个库,它允许我查找windows服务的状态,以验证该服务是否已启动并正在运行。我查看了Sigar库,但它是GPL,因此我无法使用它。商业或BSD(ish)许可证是必需的,因为这将被捆绑到商业软件中。

我不知道有任何库,但取决于您需要获得的详细信息,您可以使用一些shell命令和解析输出

网络启动服务名


将启动该服务,或返回一条错误消息,告诉您该服务已启动。不过,我不知道有哪条命令会给出状态。

我认为没有任何纯Java的方法可以做到这一点,因为有些操作系统不像Windows那样具有“服务”的概念。在我们的项目中,我们编写了一个包装器,用于从命令行调用“sc”命令。要获取服务的状态,您可以执行以下操作:

sc\\n一些计算机查询“我的服务名称”


您必须手动解析输出,但这非常简单。

如果没有其他帮助,请尝试使用稍微不同的方法(如果可以的话),例如:

  • 有大量的免费/非免费软件进行监控,包括Windows服务监控(例如nagios、Zabbix等)。这些监视器通常具有开放式API,您的Java应用程序可以通过多种不同的方式集成到这些API中
  • 如果您可以控制依赖服务应用程序,那么可以公开另一种不同的Java应用程序检查方法(例如,在端口上运行虚拟侦听器、创建文件等)。Windows服务不是一个跨平台的东西,因此您不希望在短时间内得到支持

在Java中实现这一点的简单方法