如何将java应用程序安装成windows服务?我从网上找了一些资料,说是使用wrapper-windows这个软件包,
看了两个博客,上面写的配置方法不太一样,经过各种测试,终于有了一个对于自己来说可行的方案,当然,此方案是参考两位博主的方案的,文后将附上对应参考资料的地址。
使用java service wrapper可以将java程序安装成windows服务,也可以通过简单的设置来决定是否使用机器上安装的jre(此项设置可以令java程序在那些没有安装jre环境的机器上运行)。
1、新建一个文件夹,这里命名为TestServices,在此文件夹目录中分别创建lib,bin,conf,logs,classes文件夹。
2、将wrapper-windows-x86-32-3.2.3\src\bin下的App.bat.in,InstallApp-NT.bat.in,PauseApp-NT.bat.in,ResumeApp-NT.bat.in,StartApp-NT.bat.in,StopAppNT.bat.in,UninstallApp-NT.bat.in复制到bin目录下,并将wrapper-windows-x86-32-3.2.3\bin下的wrapper.exe也复制到bin目录下,并将后缀名为.in的文件全部重命名,去掉.in。例如:将App.bat.in重命名为App.bat。
3、将wrapper-windows-x86-32-3.2.3\conf下的wrapper.conf复制到conf目录下。
4、将wrapper.log复制到logs目录下。
5、将需要安装成服务的java程序打包成jar文件(例如:test.jar,其中的主类路径为:com.Test),连同其他需要的jar文件一并放到classes目录下。
6、配置conf目录下的wrapper.conf文件,可以配置运行环境、主类、堆内存大小、类目录、服务名称等信息。
6.1、找到wrapper.java.command=java
如果本机已经配置了jre的话,那么不需要更改此项;否则,将jre目录复制到test目录下,重命名为jre(和bin在同一级),同时修改wrapper.java.command=../jre/bin/java.exe。
6.2、将程序运行需要的jar包都列出来
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../classes/test.jar
6.3、指定程序的主类
wrapper.app.parameter.1=com.Test
6.4、指定控制台运行时的名称
wrapper.console.title=test
6.5、指定服务的名称
wrapper.ntservice.name=test
6.6、windows服务的显示名称
wrapper.ntservice.displayname=test
6.7、服务描述
wrapper.ntservice.description=test description
6.8、启动模式,默认是自动启动AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START
7、运行bin下的App.bat,如果程序启动而没有异常信息,说明配置成功!然后执行InstallApp-NT.bat安装服务,运行StartApp-NT.bat启动服务,出现异常错误可以查看logs目录下的log文件。
需要注意的是:使用这种方式启动java程序,根目录是test/bin,也就是说,如果用到了根目录下的资源(配置文件或者图片等),就需要将配置文件或者图片复制到test/bin目录下。