[转]将java程序安装成windows服务

最近工作需要将java程序打包发布,并且能安装成windows服务,而且需要在没有安装jre的机器上运行。研究了一下java service wrapper,在网上找了相关的资料,但是都说得不是很详细,照着做有一定难度。所以我分步总结了一下,希望给遇到相同问题的同仁一点帮助。 

  1. 首先下载java service wrapper包,我下载的是wrapper-windows-x86-32-3.2.3,并解压,这里假设解压到warpper3.2.3文件下
  2. 新建一个文件夹命名为test,在此文件夹内建立五个文件夹,分别命名bin,logs,application,lib,conf,然后将jre复制到test文件夹内,并将jre文件夹改名为jre。
  3. 将编译后的java工程中的bin文件夹,和lib文件夹(如果用到了第三方jar包的话,没用到的话可以不复制lib)复制到application文件夹中
  4. 将warpper3.2.3/src/bin下面的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in三个文件复制到test/bin中,并分别改名,去掉“.in”。
  5. 将warpper3.2.3/bin下面的Wrapper.exe复制到test/bin
  6. 将warpper3.2.3/conf下面的wrapper.conf复制到test/conf
  7. 将wrapper3.2.3/lib下面的wrapper.jar和wrapper.dll复制到test/lib
  8. 完成以上几步后,打开test/conf/wrapper.conf

 

l         找到

# Java Application

wrapper.java.command=java

改成

# Java Application

wrapper.java.command=../jre/bin/java

这里是指定jre的路径

l         找到

wrapper.java.mainclass=org.tanukisoftware.wrapper.test.Main

改成

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

这里是指定wrapper的启动方式,用wrapper代理启动

l         找到

# Initial Java Heap Size (in MB)

#wrapper.java.initmemory=3

 

# Maximum Java Heap Size (in MB)

#wrapper.java.maxmemory=64

改成

# Initial Java Heap Size (in MB)

wrapper.java.initmemory=128

 

# Maximum Java Heap Size (in MB)

wrapper.java.maxmemory=256

 

这里是限制服务所占用的最小和最大内存,也可以不改

 

l         找到

#  needed starting from 1

wrapper.java.classpath.1=../lib/wrappertest.jar

wrapper.java.classpath.2=../lib/wrapper.jar

 

改成

#  needed starting from 1

wrapper.java.classpath.1=../lib/wrapper.jar

wrapper.java.classpath.2=../application/lib/*.jar

wrapper.java.classpath.3=../application/bin/

 

这里是指定服务所需要用到的jar包及class文件

l         找到

# Application parameters.  Add parameters as needed starting from 1

#wrapper.app.parameter.1=

改成

# Application parameters.  Add parameters as needed starting from 1

wrapper.app.parameter.1=com.xxx.yyy.Mainclass

这里是指定main class,com.xxx.yyy.Mainclass是main方法所在类,记住要去掉前面的#号才能生效!

 

l         找到

 

# Name of the service

wrapper.ntservice.name=testwrapper

 

# Display name of the service

wrapper.ntservice.displayname=Test Wrapper Sample Application

 

# Description of the service

wrapper.ntservice.description=Test Wrapper Sample Application Description

改成

# Name of the service

wrapper.ntservice.name=服务名

 

# Display name of the service

wrapper.ntservice.displayname=服务显示名

 

# Description of the service

wrapper.ntservice.description=对服务的描述

这里是指定服务的名称,显示名,及服务描述

  1. 完成上述步骤后,可以进行测试了

运行test/bin/App.bat,如果没有异常信息说明配置成功!然后可以执行InstallApp-NT.bat安装服务,执行UninstallApp-NT.bat卸载服务。

 

需要注意的一点是,采用这种方式启动java程序,那么根目录就是test/bin,而不是test/application,所以如果在程序中用到了根目录下的资源(如配置文件,图片等),需要复制到test/bin下面来。

附上文件夹结构:

test--conf—wrapper.conf

   --bin--App.bat,InstallApp-NT.bat,UninstallApp-NT.bat,Wrapper.exe

   --lib—wrapper.dll,wrapper.jar

   --application—bin,lib

   --logs

   --jre

 

这是示例程序下载地址http://d.download.csdn.net/down/1973862/itpentiuman

posted @ 2013-04-25 16:11  skykang  阅读(1170)  评论(0编辑  收藏  举报