1. 一、所需工具Java Service Wrapper
下载地址:https://wrapper.tanukisoftware.com/doc/english/download.jsp
二、在硬盘上创建项目目录
创建bin、conf、lib、logs目录
三、解压打开下载来的Wrapper
(1)将bin目录下的wrapper.exe,src/bin目录下的App.bat.in、InstallApp-NT.bat.in、UninstallApp-NT.bat.in文件拷贝到自己创建的bin目录下,并删掉.in后缀:
(2)将src/conf目录下的wrapper.conf.in、conf目录下的wrapper-license.conf拷贝到自己创建的conf目录下,并删掉.in后缀:
(3)将lib目录下的wrapper.jar、wrapper.dll拷贝到自己创建的lib目录下:
四、创建Java项目,编写代码
关键代码:
package com.javaapp; import java.util.List; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; import org.apache.log4j.Logger; public class TodoTimer { private static Logger logger = Logger.getLogger(TodoTimer.class.getName()); private TodoTimer() { } /** * 定时操作线程 */ private final static Runnable TodoOperation = new Runnable() { public void run() { try { semaphore.acquire(); //具体操作业务 Map<String, List<String>> map = JavaApp.getAllTable(); JavaApp.updataAllTable(map); } catch (InterruptedException e) { e.printStackTrace(); } finally { semaphore.release(); } } }; /** * 同步信号量 */ private static final Semaphore semaphore = new Semaphore(1); /** * 定时执行 */ private static ScheduledExecutorService scheduler = null; /** * 启动定时器 */ public static void start() { if (scheduler == null) { scheduler = Executors.newScheduledThreadPool(1); synchronized (scheduler) { scheduler.scheduleAtFixedRate(TodoOperation, 5, 60*60, TimeUnit.SECONDS); logger.info("start TODO timer!"); } } else { logger.info("TODOing!"); } } /** * 停止定时器 */ public static void stop() { synchronized (scheduler) { if (scheduler != null && !scheduler.isShutdown()) { scheduler.shutdown(); scheduler = null; logger.info("end TODO timer!"); } } } /** * 重启定时器 */ public static void restart() { stop(); start(); } public static void main(String[] args) { start(); } }
五、将代码打成jar包:javaservice.jar,并将所依赖的log4j-1.2.16.jar、sqljdbc4.jar一起拷贝到自己创建的lib目录下
六、更改wrapper.conf文件
(1)指定JVM
wrapper.java.command=C:\Program Files\Java\jdk1.7.0_67\bin\java
(2)指定所需jar包
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/javaservice.jar
wrapper.java.classpath.3=../lib/log4j-1.2.16.jar
wrapper.java.classpath.4=../lib/sqljdbc4.jar
(3)指定Java程序运行类(主类)
wrapper.app.parameter.1=com.javaapp.TodoTimer
(4)修改服务名称和描述(都用英文)
wrapper.name=JavaService
wrapper.displayname=JavaService
wrapper.description=JavaService
七、进入bin目录双击App.bat测试运行,若能运行则配置成功,双击InstallApp-NT.bat可将Java应用注册到服务中,启动服务即可
完毕!