我如何做一个自定义的Windows服务?

其实我有一个Java程序。 返回“Hello World”。 我把它转换成jar文件。 之后,我改变了文件types为.exe与使用iexpress在我的Windows XP的默认SW。

我使用sc create命令创build新的服务。 我成功创build了Windows服务。 但事情是我不能运行这个。 这是抛出以下错误。

在这里输入图像说明

这个错误不仅是为了这个javaservice。

我试图运行chrome.exe作为Windows服务,那时候也是抛出相同的错误。

是Windows的限制吗? 还是我犯了错误? 期待解决scheme。

提前致谢…

您不能只是分配任何任意的.exe文件作为服务运行。 有一些特定的API函数需要服务与服务控制管理器(SCM)进行交互。 这就是为什么你会得到错误 – 这些.exe文件没有使用这些API来与SCM进行交互。

如果你不是专门为SCM交互编写代码(Java不支持创建Windows服务),那么所有的都不会丢失。 在某些情况下(Chrome 不是其中之一!),您可以使用单独的包装来托管非服务应用程序并代表它们处理SCM交互:

服务包装

对于Java应用程序,有几个可用的包装项目:

Java服务包装器

另一个Java服务包装器

OW2