将jar注册为Windows服务
目录
打包jar
对于在Itellij Idea下创建的Maven项目,可以直接使用idea进行打包
设置完成后,build项目即可将jar包输出至output directory
。注意应将配置文件排除,避免修改配置造成再次打包的麻烦。这样的话,代码中对配置文件的读取应采用相对路径(相对jar的位置),如:
DOMConfigurator.configure("log4j.xml");
Ini ini = new Ini(new File("conf.ini"));
安装JSW
java service wrapper可以将jar注册为Windows服务,请移步下载地址下载对应的版本,并解压文件。
配置wrapper服务
在任意位置新建文件夹service
及其子目录bin
conf
classes
lib
log
,将下表中wrapper文件夹中的文件复制到对应的service目录中。
wrapper | service | 备注 |
/bin/wrapper.exe | /bin/wrapper.exe | |
/src/bin/App.bat.in | /bin/App.bat | 直接执行jar |
/src/bin/InstallApp-NT.bat.in | /bin/InstallApp-NT.bat | 注册Windows服务 |
/src/bin/UninstallApp-NT.bat.in | /bin/UninstallApp-NT.bat | 注销Windows服务 |
/lib/Wrapper.dll | /lib/Wrapper.dll | |
/lib/Wrapper.jar | /lib/Wrapper.jar | |
src/conf/wrapper.conf.in | conf/wrapper.conf | 服务配置文件 |
src/conf/wrapper-license.conf.in | conf/wrapper-license.conf |
将自己的jar包放入service/classes
目录中,配置文件放入service/bin
目录中。如果通过java -jar x.jar
来运行x.jar,则需要将配置文件和jar文件放在同一目录中。
外部依赖包放入service/classes
或service/lib
。
修改service/conf/wrapper.conf
:
wrapper.java.command=%JAVA_HOME%/bin/java (java目录)
wrapper.java.classpath.2=../classes/monitor.jar (自己的jar包)
wrapper.app.parameter.1=com.jing.thread.FileListener (包含main方法的类)
wrapper.name=file listener (服务名称)
wrapper.displayname=file listener (服务显示名称)
启动服务
运行/bin/InstallApp-NT.bat
即可注册服务,services.msc
打开服务,启动相应的服务即可。