将jar注册为Windows服务

目录

  1. 打包jar
  2. 安装JSW
  3. 配置wrapper服务
  4. 启动服务

打包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/classesservice/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打开服务,启动相应的服务即可。