2014-11-21 192 views
0

我有一个沉重的java web应用程序,有一个模块,需要在计算机启动和24X7时立即运行。该模块有一个bat文件来执行从服务器获取数据。 我想在我的系统上运行该bat文件作为Windows服务(操作系统:Windows 7) 我使用已成功创建的sc create命令创建服务。但是,当我尝试启动它时,它始终会发出错误1053,即无法启动服务;服务没有正确或及时地回应。 我遵循堆栈溢出和其他人的所有相关线程,但没有运气。例如,我也设置了servicesPipeTimeout,但它不起作用。作为Windows服务运行bat文件为Windows服务给出错误

在Java本身有没有办法创建Windows服务?

我不想使用任何第三方如包装,NSSM等或时间计划。

如果有人遇到此错误并解决问题,请为我提供一些线索。

在此先感谢您。给我的时间意味着很多。非常感谢

+0

嘿,各位精彩纷呈的人,请帮我摆脱这种情况。 – 2014-11-22 07:01:55

+0

知道这些事情的朋友建议使用create命令以这种方式启动它:'sc create ServiceName binpath =“C:\ Windows \ System32 \ cmd.exe /CC:\ServiceName\batch.bat”'请如果这有效,请留下评论。 – sjoy 2014-11-23 19:26:49

+0

嗨sjoy,谢谢你的回复。我很高兴有人听到。那么,这一部分已经完成了。正如我所说,我成功创建了这项服务。当我尝试启动它时会出现问题。它给错误1053. – 2014-11-24 07:05:43

回答

0

你正在尝试的是行不通的。虽然SC不会告诉你,但它应该只用于安装一个二进制可执行文件,即已经一个“真正的”Windows服务。因为批处理文件没有实现Windows服务接口,所以当您尝试启动服务时,它会失败,并显示错误1053(“服务没有及时响应启动请求或控制请求”)。

要将批处理文件作为服务启动,请使用"service wrapper" - 一个实现Windows服务接口的可执行文件,并且可以在启动服务时启动批处理文件。 Microsoft's SRVANY是免费且基本的,但也有商业应用程序更适合专业环境。

+0

感谢CoreTech和Sjoy的回复。我现在使用了SRVANY。如果面对一些查询,将再次发布。非常感谢!!! – 2014-11-24 17:05:04