`
yanguz123
  • 浏览: 556042 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java程序注册windows 服务

 
阅读更多

java程序作为windows服务运行
Installing and Running as an NT Service
1.下载Java Service Wrapper
2.以控制台方式运行
2.1建立你的应用目录
2.2拷贝运行批处理文件

{WRAPPER_HOME}/src/bin/App.bat.in
{WRAPPER_HOME}/src/bin/InstallApp-NT.bat.in
{WRAPPER_HOME}/src/bin/UninstallApp-NT.bat.in
拷贝到你的应用程序目录(MyApp)中:
C:/MyApp/bin/MyApp.bat
C:/MyApp/bin/InstallMyApp-NT.bat
C:/MyApp/bin/UninstallMyApp-NT.bat
以上假设你的应用程序在bin目录下
2.3建立conf目录(与上面来建立的bin目录同级)
把{WRAPPER_HOME}/src/conf/wrapper.conf
拷贝到这个目录下
C:/MyApp/conf/wrapper.conf
2.4建立lib目录(与上面来建立的bin目录同级)
把{WRAPPER_HOME}/lib的内容
拷贝到这个目录下
C:/MyApp/lib/
2.5修改wrapper.conf文件:
2.5.1修改wrapper.java.classpath段,追加你的应用运行时需要的库,
例如:
wrapper.java.classpath.1=../lib/simple-log.jar
wrapper.java.classpath.2=../lib/simple-log-rollover.jar
wrapper.java.classpath.3=../lib/wrapper.jar
wrapper.java.classpath.4=.
2.5.2修改wrapper.app.parameter段,追加你的应用运行时需要的参数,
例如:
wrapper.app.parameter.1=Forwarder 6666 196.168.1.10 8888
2.5.3修改以@打头和结束的内容,
例如:@app.name@
改为:MyAPP
2.6运行bin目录下的App.bat文件,此时应用以控制台方式运行,按Ctrl+C
结束运行。

3.以windows服务方式运行
3.1修改wrapper.conf文件
修改Wrapper Windows NT/2000/XP Service Properties段的内容,
注意:这部分内容只能在安装服务之前和卸载服务之后修改。
3.2运行InstallApp-NT.bat,安装windows服务
InstallApp-NT.bat不用修改内容
3.3通过系统的服务管理面板来启动服务,或者使用命令行方式启动和停止服务。
例如:
net start 服务名
net stop 服务名
3.4运行UninstallApp-NT.bat,卸载windows服务
UninstallApp-NT.bat不用修改内容

 

 

 

 

 

 

Java程序注册为Windows的服务
一. 运行环境
有java运行环境。
二. 需要软件
Java Service Wrapper
下载地址为http://sourceforge.net/projects/wrapper/
三. 配置过程
1. 首先将java程序打成jar包。
2. Java Service Wrapper包解压。
3. 比如要注册成服务的程序项目目录为workapp,那么在这个目录下面新建三个文件夹:
bin、conf、lib。
4. 把Java Service Wrapper包中bin目录下的Wrapper.exe、src/bin目录下的App.bat.in、InstallApp-NT.bat.in、UninstallApp-NT.bat.in文件拷贝到workapp的bin目录中,并分别改名为App.bat、InstallApp-NT.bat、UninstallApp-NT.bat。
5. 把Java Service Wrapper包中lib目录下的Wrapper.DLL、wrapper.jar拷贝到workapp的lib目录中。并且将项目的jar和所用到的jar都拷贝到该目录。
6. 把Java Service Wrapper包中srcconf目录下的wrapper.conf.in拷贝到workapp的conf目录中,并命名为wrapper.conf。
7. 修改wrapper.conf配置文件,方法如下:
     主要修改以下几项即可:
    (1)JVM位置:
     wrapper.java.command=C:\jdk1.5.0_07\bin\java
    (2)运行参数:如:
     wrapper.java.additional.1=-Dprogram.name=run.bat
    (3)你的Java程序所需的jar包必须全部在此标明,注意路径准确:
     wrapper.java.classpath.1=../lib/wrapper.jar
     wrapper.java.classpath.2=../lib/test_fat.jar
……
    (4)你的Wrapper.DLL或wrapper.jar所在的目录
     wrapper.java.library.path.1=../lib
    (5)MAIN CLASS 此处决定了使用Java Service Wrapper的方式
     wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
    (6)你的Java应用程序的运行类
     wrapper.app.parameter.1= com.tes.Testjar
    (6)注册为服务的名称和显示名,你可以随意进行设置
     wrapper.ntservice.name=testService
     wrapper.ntservice.displayname= testService
    (7)服务描述信息
     wrapper.ntservice.description= testService
8. 修改好了以后,运行MyApp.bat即可运行你的java程序,这里可以测试配置的是否正确,如果可以运行,证明配置ok。
9. 运行InstallApp-NT.bat可以进行服务的注册,UninstallApp-NT.bat为注销服务。
10. 运行完注册服务InstallApp-NT.bat可以在 控制面板-管理程序-服务 中看到你注册的服务名称。(如:testService)

 

 

 

 

 

 

 

 

 

 

 

首先到请下载最新版本的Java Service Wrapper,点我下载。
1. 解压Wrapper Software
并将安装目录定义为 <WRAPPER_HOME> 。在它的目录下存在子目录 bin等。
2. 作为测试,在Console中启动wrapper的示例:
cd <WRAPPER_HOME>/bin
wrapper.exe -c ../conf/wrapper.conf
或者
TestWrapper.bat
使用Ctrl+C连续按二次,可以停止我们的应用软件。
3. 安装例子<WRAPPER_HOME>/lib/wrappertest.jar作为NT服务,其服务名称为Test Wrapper Sample Application
cd <WRAPPER_HOME>/bin
InstallTestWrapper-NT.bat
4. 启动你的NT服务Test Wrapper Sample Application
cd <WRAPPER_HOME>/bin
StartTestWrapper-NT.bat
5. 停止你的NT服务Test Wrapper Sample Application
cd <WRAPPER_HOME>/bin
StopTestWrapper-NT.bat
6.卸载你的NT服务Test Wrapper Sample Application
停止你的NT服务wrapper_test,如果你的NT服务wrapper_test还运行的话。
cd <WRAPPER_HOME>/bin
UninstallTestWrapper-NT.bat。
至此,例子的示范完毕,希望对你有所帮助。
文章引用自: http://www.lycom.de/2006/11/25/wrapper_test20061125_21405

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、下载wrapper-windows-x86-32系列的工具包,解压缩为<wrapper-home>。
2、新建一个目录,例如:C:\MyServerApp,并在其下面创建五个文件夹
分别为:

bin 可执行程序文件夹
conf 配置文件夹
lib wrapper自身的jar包文件夹
logs 日志文件夹包
application 新建一个class用于存放应用程序的class文件, 此包下还新建一个lib 用于存放应用程序所需要的 jar包。
3、将<wrapper-home>\src\bin 中的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in等文件
与<wrapper-home>\bin 下的wrapper.exe复制到bin 目录下,并且将App.bat.in,InstallApp-NT.bat.in,
UninstallApp-NT.bat.in等的后缀.in去掉。
将<wrapper-home>\src\conf 下的wrapper.conf文件和<wrapper-home>\conf 下的wrapper-license复制到conf目录下,wrapper-license文件一定不能少
将<wrapper-home>\lib 下的wrapper.jar,wrappertest.jar和wrapper.dll文件复制到lib目录下
最终的包结构可以是这样子的:
C:\MyServerApp
|-bin
|-App.bat
|-InstallApp-NT.bat
|-UninstallApp-NT.bat
|-wrapper.exe
|-lib
|-wrapper.jar 必须要的
|-wrappertest.jar
|-wrapper.dll
|-conf
|-wrapper.conf

|-wrapper-license
|-logs
|-wrapper.log
|-application
|-lib 应用程序中如果用到了jar包,那么就复制到此文件夹里
|-class 用来存放应用程序(一般应用程序是有包结构的,就把工程里面的bin目录下的.class文件连同包一起拷过来)
4、配置Wrapper工具的wrapper.conf配置文件
配置Java 虚拟机的位置
wrapper.java .command=C:\Program Files\Java \jdk1.6.0_07\bin\java
配置wrapper的主类,如果用他的代理方式,就填org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.java .mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
工具寻找jar包以及应用程序的路径
wrapper.java .classpath.1=../lib/wrappertest.jar
wrapper.java .classpath.2=../lib/wrapper.jar
wrapper.java .classpath.3=../lib/wrapper.dll
应用程序连同其文件夹一起拷到application文件夹下了,所以路径只需要指定到../application/
wrapper.java .classpath.4=../application/class
应用程序要用到的所有jar包
wrapper.java .classpath.5=../application/lib/*.jar
wrapper.java .library.path.1=../lib
wrapper.java .additional.1=-Dprograme.name=run.bat
要将哪一个应用程序做成服务,就要把他的主函数所在的类名 写在这里
wrapper.app.parameter.1=com.luke.service.server.TcpServer
wrapper.console.format=PM
wrapper.console.loglevel=INFO
指定日志记录的地方
wrapper.logfile=../logs/wrapper.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE
wrapper.console.title=Wrapper Application
wrapper.ntservice.name=@wrapper @
wrapper.ntservice.displayname=@WrapperApplication @
wrapper.ntservice.description=@WrapperDescription @
wrapper.ntservice.dependency.1=
wrapper.ntservice.starttype=AUTO_START
wrapper.ntservice.interactive=false
5、运行cmd
cd c:\MyServerApp\bin
App.bat测试不会将把你的应用(此处为server)安装到Win32系统服务中
InstallApp.bat安装 后才将把你的应用(此处为server)安装到Win32系统服务中

 

 

 

 

 

 

 

 

 

 

平时要随机启动用JAVA程序写的代码,只有放在启动中,但用户都能轻易看到,所以这次把代码加到WINDOWS系统服务中。
1、Java Service Wrapper官网:http://wrapper.tanukisoftware.com/doc/english/download.jsp
2、下载后将文件解压,文件名我取成wrapper。然后自己再新建一个文件夹,命名为Monitor,在Monitor新增四个文件夹,bin,conf,logs,lib。
3、把wrapper下的src/bin/的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in和bin/下的wrapper.exe都放在Monitor的bin下,把.in后缀删除。【App.bat(可以直接运行程序),InstallApp-NT.bat(安装成Windows务),UninstallApp-NT.bat(卸载Windows服务)】
4、把wrapper的lib下的wrapper.dll,wrapper.jar放到Monitor的lib下。
5、把wrapper的conf下的wrapper.conf,wrapper-license.conf放到Monitor的conf下
6、把wrapper的logs下的wrapper.log放到Monitor的logs下
7、修改Monitor的conf/wrapper.conf,把你需要引用到的jar包分别加入到“wrapper.java.classpath.1=”后面.
    eg.   wrapper.java.classpath.1=../lib/wrapper.jar
            wrapper.java.classpath.2=../lib/commons-dbutils-1.5.jar
     修改"wrapper.app.parameter.1=",这里是你代码中的main class【这里可以把你的代码打成jar】
     分别修改wrapper.console.title=MyApp
                 wrapper.ntservice.name=MyApp【系统服务中的服务名称】
                 wrapper.ntservice.displayname=MyApp 【系统服务中显示名称】
                 wrapper.ntservice.description=MyApp 【系统服务中的描述】
8、运行App.bat,运行成功后就可以运行InstallApp-NT.bat安装到服务中了,UninstallApp-NT.bat卸载服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用一个第三方的软件将java写的应用注册成为windows的服务。

比如说james,activeMQ,hsql db,MSQL等,注册成为了服务后,不用每天对着一个
CMD的DOS窗口,也不用每天启动了电脑后去启动这些程序,也是一件比较爽的事情。
用到的第三方的软件是java service wrapper,
1.下载
    下载地址是http://wrapper.tanukisoftware.org/doc/english/download.jsp我用的版本是3.3.1最新版本。
     找到Download by Platform中的
     32-bit OS Windows CPU x86 3.3.1 Professional
     32位的Windows 系统商业的版本为3.3.1
     下载http://wrapper.tanukisoftware.org/download/3.3.1/wrapper-windows-x86-32-3.3.1-pro.zip
     你也可以下载下面的File Type所有的开源代码和详细的文档
2、准备如下文件,复制到test目录,这些文件可以从下载包中找到:
wrapper.dll
wrapper.exe
wrapper.jar
3、编写wrapper.conf

另外wrapper.conf就要修改得多了,我把整个文件都列出来,一个一个看,wrapper.conf:
#********************************************************************
# Wrapper Properties
#********************************************************************
# Java Application j2sdk所安装的路径,如果path中有d://tool/j2sdk/bin,那么只写个java就可以了
wrapper.java.command=java

# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
# of the documentation for details. 这个不用修改了
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1 从1开始,把hsqldb要用到的jar也要加入进去
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/hsqldb.jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
# 这个主要是加入那个wrapper.dll吧,我理解的是
wrapper.java.library.path.1=../lib

# Java Additional Parameters 启动JVM的参数
#wrapper.java.additional.1=

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=64

# Application parameters. Add parameters as needed starting from 1
# 第一个是启动hsqldb的主函数,从hsqldb的启动bat里面找到的,另外的就是启动参数了
wrapper.app.parameter.1=org.hsqldb.Server
wrapper.app.parameter.2=-database.0 sillycat
wrapper.app.parameter.3=-dbname.0 sillycat
wrapper.app.parameter.4=-port 9002

#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Format of output for the console. (See docs for formats)
wrapper.console.format=PM

# Log Level for console output. (See docs for log levels)
wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.
wrapper.logfile=../logs/wrapper.log

# Format of output for the log file. (See docs for formats)
wrapper.logfile.format=LPTM

# Log Level for log file output. (See docs for log levels)
wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before
# the log is rolled. Size is specified in bytes. The default value
# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
# 'm' (mb) suffix. For example: 10m = 10 megabytes.
wrapper.logfile.maxsize=0

# Maximum number of rolled log files which will be allowed before old
# files are deleted. The default value of 0 implies no limit.
wrapper.logfile.maxfiles=0

# Log Level for sys/event log output. (See docs for log levels)
wrapper.syslog.loglevel=NONE

#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=Hsql DB

#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
# using this configuration file has been installed as a service.
# Please uninstall the service before modifying this section. The
# service can then be reinstalled.


#window服务配置
wrapper.console.title=Hsql DB

# Name of the service 应用的名字
wrapper.ntservice.name=Hsql DB                                        服务名

# Display name of the service
wrapper.ntservice.displayname=Hsql DB                                 显示名称

# Description of the service
wrapper.ntservice.description=Hsql DB#                                描述
 
# Service dependencies. Add dependencies as needed starting from 1    依赖项
wrapper.ntservice.dependency.1=

# Mode in which the service is installed. AUTO_START or DEMAND_START  启动模式
wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.    是否把服务程序放在桌面上
wrapper.ntservice.interactive=false

这个配置文件搞定了以后,就可以运行hsqldb.bat来测试一下,我们通过wrapper能不能正常启动
hsqldb,如果测试通过了。
那么就简单了,运行如下命令
wrapper.exe -i wrapper.conf -----装载WINDOWS服务
wrapper.exe -r wrapper.conf -----卸载WINDOWS服务

4、运行测试,安装服务

》测试运行是否正常
wrapper.exe -c wrapper.conf
》安装服务
wrapper.exe -i wrapper.conf
》卸载服务
wrapper.exe -r wrapper.conf
》启动
wrapper.exe -t wrapper.conf
》停止
wrapper.exe -p wrapper.conf



下面是我们服务器的wrappers.conf文件的详细文件

# Java Application完整路径
wrapper.java.command=java

wrapper.java.mainclass=org.esdimserver.server.WhileUDPServer

#定义程序运行的classpath
wrapper.java.classpath.1=Server.jar
wrapper.java.classpath.2=[jar file/path]

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=.

# Java Additional Parameters
#wrapper.java.additional.1=

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=64

# 运行的Main Class
wrapper.app.parameter.1=

wrapper.console.format=PM
wrapper.console.loglevel=INFO
wrapper.logfile=Beanskt.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO

wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE

#window服务配置
wrapper.console.title=Server_esd3
#服务名
wrapper.ntservice.name=Server_esd3

# 显示名称
wrapper.ntservice.displayname=Server_esd3 Service

# 描述
wrapper.ntservice.description=Server_esd3 Service

# 依赖项
wrapper.ntservice.dependency.1=

# 启动模式:  AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START

# 是否交互.
wrapper.ntservice.interactive=false

 

 

 

 

 

 

 

 

 

 

 

————————java程序制作成windows服务(x86_32位)—————————————
我是采用的Java Service Wrapper工具, 下载地址:
http://sourceforge.net/projects/wrapper/files/
(当下最新版为 wrapper-windows-x86-32-3.5.11.zip )

步骤:
1、解压缩java service wrapper包,假设目录为:wrapper_home
2、建立一个目录比如:D盘server文件夹里面建立bin、conf、logs、lib文件夹。
3、将wrapper_home/bin目录里wrapper.exe
   将wrapper_home/src/bin目录里App.bat.in
   将wrapper_home/src/bin目录里InstallApp-NT.bat.in
   将wrapper_home/src/bin目录里UninstallApp-NT.bat.in
   统一拷贝至server/bin目录里,并去掉后缀名in。
   将wrapper_home/src/conf目录wrapper.conf.in拷贝至server/conf目录里去掉后缀名in
   再将wrapper_home/lib/目录里面的wrapper.jar和wrapper.dll拷贝至server/lib目录里面
4、将你的应用程序打成jar包后放入server/lib目录里面,如果程序依赖第三方架包,同样将jar包放入该目录下。
5、配置server/conf/wrapper.conf文件。
主要修改以下几项即可:
#你的JVM位置(文中有进行设置的地方...):
wrapper.java.command=%JAVA_HOME%\bin\java
#classpath:里面添加上你要执行的应用程序jar,以及依赖的第三方jar,有多个依次类推
wrapper.java.classpath.1=../lib/应用程序.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../bin/第三方.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)

#你的Java应用类(一般而言就是包含main函数的类 包名.类名),
wrapper.app.parameter.1=com.job.RunOnTime
# Display name of the service(服务名称)
wrapper.displayname=@MyFristWebService@

# Description of the service(服务描述)
wrapper.description=first webservice
其他的配置根据你的需要改变即可
6.  对以上配置的App.bat进行测试,运行App.bat,dos窗口中显示;
7.  对以上配置的服务进行测试,运行server/bin/InstallApp-NT.bat将把你的应用(此处为server)安装到Win32系统服务中了。
8.  打开控制面板-管理程序-服务,看到server已经在系统服务中了,其他用法就与我们熟悉的Windows服务一样了。

bin/App.bat  控制台方式运行程序

bin/InstallApp-NT.bat  安装服务

bin/UninstallApp-NT.bat 删除服务
wrapper.java.library.path.1=../lib(存放.dll的位置)
#MAIN CLASS 此处决定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
成功后见下截图


   

   需要强调的是: 如果你工程的jar包很多的话可以采取正则表达式的方式,例如我的lib下有80个jar文件,那么你可以使用/*.jar的形式。 经本人验证OK!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics