描述
有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper 是目前较为流行的将Java程序部署成Windows服务的解决方案
下载serviceWrapper包
网址:https://www.krenger.ch/blog/category/windows/
下载zip压缩文件
解压serviceWrapper包
解压wrapper-windows-x86-64-3.5.43.zip
解压出来的文件多,但有些不是必须要的
注册一个简单的服务
准备一个目录 建议在非中文且不含有空格的目录下
目录结构如下:
lang目录是存放支持其他语言的语言包,一般用不到
mylib目录是存放我们的程序包
然后将下载的wrapper目录下的文件拷贝到我们上面建的目录:
···\bin\InstallTestWrapper-NT.bat -> D:\test\java-service-hello\bin\InstallTestWrapper-NT.bat
···\bin\StartTestWrapper-NT.bat -> D:\test\java-service-hello\bin\StartTestWrapper-NT.bat
···\bin\StopTestWrapper-NT.bat -> D:\test\java-service-hello\bin\StopTestWrapper-NT.bat
···\bin\TestWrapper.bat -> D:\test\java-service-hello\bin\TestWrapper.bat
···\bin\UninstallTestWrapper-NT.bat -> D:\test\java-service-hello\bin\UninstallTestWrapper-NT.bat
···\bin\wrapper.exe -> D:\test\java-service-hello\bin\wrapper.exe
···\conf\wrapper.conf -> D:\test\java-service-hello\conf\wrapper.conf
···\lib\wrapper.jar -> D:\test\java-service-hello\lib\wrapper.jar
···\lib\wrapper.dll -> D:\test\java-service-hello\lib\wrapper.dlljava程序
1 | import java.io.File; |
引入的依赖
1 | <dependency> |
java程序打包
由于采用eclipse所有打包流程:项目邮件 -> Export -> Java/Runnable JAR file -> Next
导出项目设置
导出项目文件
将程序打成的包以及自己程序依赖的包放到mylib
修改配置文件
文件路径:D:\test\java-service-hello\conf\wrapper.conf
内容如下:
# jdk或者jre的java.exe路径,可通过环境变量获取
wrapper.java.command=%JAVA_HOME%/bin/java.exe
# wrapper.java.command=C:\Java\jre1.8.0_45\bin\java
# 日志级别
wrapper.java.command.loglevel=INFO
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# 执行的程序的main方法的类的路径
wrapper.app.parameter.1=com.demon.jar_hello.JarHelloApp
# 依赖的包,第一个是wrapper包,第二个是自己打的包以及程序依赖包
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../mylib/*.jar
# 固定写法,依赖的wrapper的包
wrapper.java.library.path.1=../lib
# 日志配置 按照日期每天创建文件
wrapper.logfile=../logs/wrapper.YYYYMMDD.log
wrapper.logfile.rollmode=DATE
# 服务名称以及描述信息
wrapper.console.title=jar hello Server
wrapper.name=jarhelloserver
wrapper.displayname=jar hello Server
wrapper.description=jar hello Server
# 更多配置可对 jvm 配置测试注册服务
在服务目录下的bin目录下双击 TestWrapper.bat 文件,当程序执行正确时则表示可以注册服务
控制台测试
注册服务
在服务目录下执行(管理员模式)
注册服务命令
bin\wrapper.exe -i ..\conf\wrapper.confcmd结果
服务结果
启动服务命令
net start jarhelloserver
或者
bin\wrapper.exe -t ..\conf\wrapper.confcmd结果
服务结果
停止服务命令
net stop jarhelloserver
或者
bin\wrapper.exe -p ..\conf\wrapper.conf cmd结果

服务结果
删除服务命令
sc delete jarhelloserver
或者
bin\wrapper.exe -r ..\conf\wrapper.conf cmd结果

扩展 一
由于使用命名操作复杂,故在服务目录创建bat文件
install-service.bat
@echo off
start cmd /c "title install-service && bin\wrapper.exe -i ..\conf\wrapper.conf"uninstall-service.bat
@echo off
start cmd /c "title uninstall-service && bin\wrapper.exe -r ..\conf\wrapper.conf"start-service.bat
@echo off
start cmd /c "title start-service && bin\wrapper.exe -t ..\conf\wrapper.conf"stop-service.bat
@echo off
start cmd /c "title stop-service && bin\wrapper.exe -p ..\conf\wrapper.conf"扩展 二
我们可以用上面的service wrapper的bin包中的bat文件进行服务操作
将下载解压后的wrapper-windows\bin中的部分文件复制到我们的服务\bin目录下
我们只需要点击上面的bat文件即可实现上面的操作:
安装服务:InstallTestWrapper-NT.bat
查询服务:QueryTestWrapper-NT.bat
开启服务:StartTestWrapper-NT.bat
停止服务:StopTestWrapper-NT.bat
测试服务:TestWrapper.bat
卸载服务:UninstallTestWrapper-NT.bat链接
发布Java程序为Windows服务 (不含有Java环境)二
发布Java程序为Windows服务 (修改配置参数,新增对 jvm 的配置)三
发布Java程序为Windows服务 - Windows Service Wrapper 四