首先,到http://www.tacktech.com/pub/microsoft/service/srvany.zip去下载srvany工具,这个工具可以注册一个服务,然后在注册表中配置这个服务需要运行的程序。下载后,将之解压,在命令行模式下进入工具所在的文件夹,输入:INSTSRV.EXE "Service Name" <path>/SRVANY.EXE (这里<path>是指你机器上存放srvany程序的位置)
运行的结果是在服务中注册了一个新的服务,以命令中的"Service Name"命名。这时运行services.msc应该会看到新注册的服务。推荐这时配置一下这个服务的属性,设置好此服务以某一用户身份运行。(有时使用SYSTEM账号运行服务,会遇到文件权限的问题,况且也不安全)
然后打开注册表编辑器(regedi),打开HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/项,找到你注册的服务名,打开,新建一个Key,名为Parameters,再在这个Key里面新建一个String Value,填入你要运行的程序的完整路径就可以了。这个东西是不支持Java程序的,所以这里我制作了一个批处理文件,里面写入java -jar XXX.jar XXXX.conf(XXXX.conf为java的命令行参数),存为runmysvc.bat,再在此处填入这个bat的完整路径就可以了。
然后,在services.msc里面,启动注册的服务,Java程序就在后台运行了,用户logoff也不要紧噢!只要开机就可以了。非常适合在server上跑程序。
如果需要卸载这个服务,用这个命令就可以了:INSTSRV.EXE "Service Name" REMOVE
另外,在Parameters这个Key下面,还可以新建下面这些String Value:
Application,里面要填所要启动的程序
AppParameters,里面要填要启动的程序的命令行参数
AppDirectory,里面要填要启动的程序的工作目录