利用JAVA Service Wrapper把JAVA程序作成windows服务

1、下面是整个程序的功能部分:java

public class TestService {
	private static Thread thread=null;  
    private static Service service = null;  
  
    
    /** 
    * 启动服务方法(该方法必须有参数 String [] args) 
    * @param args 
    */  
    public static void main(String [] args)  
    {  
        System.out.println("启动服务");  
        // 产生服务线程  
        service = new Service();  
        thread=new Thread(service);  
        try  
        {  
            // 将服务线程设定为用户线程,以免StartService方法结束后线程退出  
            thread.setDaemon(false);  
            if(!thread.isDaemon())  
            {  
                System.out.println("成功设定线程为用户线程!");  
            }  
  
            //启动服务线程  
            thread.start();  
        }  
        catch(SecurityException se)  
        {  
            System.out.println("线程类型设定失败!");  
        }  
    }
    
    /** 
     * 退出服务方法(该方法必须有参数 String [] args) 
     * @param args 
     */  
     public static void StopService(String[] args)  
     {  
         System.out.println("中止服务");  
         service.setRunFlag(false);  
     } 
}

public class Service implements Runnable {
	private boolean runFlag = true;  
	  
    /** 
    * 设定服务线程运行标志值 
    * @param runFlag 
    */  
    public synchronized void setRunFlag(boolean runFlag)  
    {  
        this.runFlag = runFlag;  
    }  
  
    /** 
    * 取得服务线程运行标志值 
    * @param void 
    */  
    private synchronized boolean getRunFlag()  
    {  
        return runFlag;  
    }  
  
    @Override  
    public void run()   
    {  
        System.out.println("服务线程开始运行");  
        while(getRunFlag())  
        {  
            Calendar cal = Calendar.getInstance();  
            long mis = cal.getTimeInMillis();  
            System.out.println("当前时间:" + mis);  
            try   
            {  
                Thread.sleep(1000*10);  
            }   
            catch (InterruptedException e)   
            {  
                e.printStackTrace();  
            }  
        }  
        System.out.println("服务线程结束运行");  
    }  
}

2、整个项目须要打包生成WPDAnalysis.jar,而后咱们就能够作咱们的window服务了。sql

第一步在http://wrapper.tanukisoftware.com/doc/english/download.jsp下载咱们的java service wrapper工具,下载后解压。工具分32位跟64位,看本身所需。app

第二步构建你的程序工做目录,好比我构建D:\WPDAnalysis_64。而后在目录下建造lib,logs,bin,conf等文件夹。其实目录名字也能够本身随便定义,只要最后配置正确便可。同时把你的WPDAnalysis.jar也放在D:\WPDAnalysis_64下面。jsp

第三步把解压后的文件夹中src\bin中的文件复制到新建的bin文件夹下面。并把全部文件的in后缀去掉。同时把解压后文件夹中bin下的wrapper.exe也放到新建的bin下。ide

第四步把解压后的文件夹中src\conf中的文件复制到新建的conf文件夹中(最好把conf下面)。把in后缀去掉。工具

第五步把解压后的文件夹中lib中的wrapper.jar与wrapper.dll放大新建的lib下面。同时把WPDAnalysis程序所须要的第三方jar包夜放在这里。我这里使用sqljdbc4.jar。测试

第六步配置wrapper.conf文件,主要配置选项以下:this

#Java的位置  
wrapper.java.command=D:\Java\jdk1.6.0_31\bin\java  
#若是你系统已经配置了%JAVA_HOME%的环境变量,上面的就能够不配置了。以下:  
#wrapper.java.command=%JAVA_HOME%/bin/java  
  
#classpath:  
wrapper.java.classpath.1=../WPDAnalysis.jar  
wrapper.java.classpath.2=../lib/wrapper.jar   
  
# Java Library Path (取决于Wrapper.DLL 或者libwrapper.so)  
wrapper.java.library.path.1=../lib  
#MAIN CLASS 此处决定了使用Java Service Wrapper的方式  
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp  
#你的Java应用类,我这里是这样子  
wrapper.app.parameter.1=wpdanalysis.WPDAnalysis  
  
#服务名称  
wrapper.name=WPDAnalysis_64  
#服务部署名称,会显示到window服务中的名称栏  
wrapper.displayname=Analysis WPD Data Into DataBase For X64  
#服务的描述  
wrapper.description=Analysis WPD Data Into DataBase For X64

配置之后,点击bin文件夹下面的App.bat进行测试,若是可以在console中出现正常结果的话就代表配置正确。而后点击InstallApp-NT.bat安装服务,也能够点击UninstallApp-NT.bat卸载服务。成功安装服务后能够在window服务管理中看到哦。spa


以上就是java程序作成服务的步骤。线程

相关文章
相关标签/搜索