Java应用程序注册到window服务

来源:互联网 发布:手机淘宝开网店图解 编辑:程序博客网 时间:2024/06/05 19:36

本文采用Java Service Wrapper工具进行把Java Apps注册到Window的服务列表中,这篇文章只是记录下来如何进行完成这个需求的,对其中用到的知识并没有详细的介绍,如有兴趣请大家到网上查找相关资料。

Java Service Wrapper官网:http://wrapper.tanukisoftware.com/doc/english/download.jsp

1、在bin目录下建立install-agent-service.bat和uninstall-agent-service.bat脚本

install-agent-service.bat

@echo offsetlocalrem Copyright (c) 1999, 2006 Tanuki Software Inc.remrem Java Service Wrapper general NT service install scriptremif "%OS%"=="Windows_NT" goto ntecho This script only works with NT-based versions of Windows.goto :eof:ntremrem Find the application home.remrem %~dp0 is location of current script under NTset _REALPATH=%~dp0rem Decide on the wrapper binary.set _WRAPPER_BASE=wrapperset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exeif exist "%_WRAPPER_EXE%" goto confset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exeif exist "%_WRAPPER_EXE%" goto confset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exeif exist "%_WRAPPER_EXE%" goto confecho Unable to locate a Wrapper executable using any of the following names:echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exeecho %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exeecho %_REALPATH%%_WRAPPER_BASE%.exepausegoto :eofremrem Find the wrapper.confrem:confset _WRAPPER_CONF="%~f1"if not %_WRAPPER_CONF%=="" goto startupset _WRAPPER_CONF="%_REALPATH%..\conf\wrapper.conf"echo _WRAPPER_CONFremrem Install the Wrapper as an NT service.rem:startupecho "%_WRAPPER_EXE%" -i %_WRAPPER_CONF%"%_WRAPPER_EXE%" -i %_WRAPPER_CONF%if not errorlevel 1 goto :eofpause
uninstall-agent-service.ba

@echo offsetlocalrem Copyright (c) 1999, 2006 Tanuki Software Inc.remrem Java Service Wrapper general NT service uninstall scriptremif "%OS%"=="Windows_NT" goto ntecho This script only works with NT-based versions of Windows.goto :eof:ntremrem Find the application home.remrem %~dp0 is location of current script under NTset _REALPATH=%~dp0rem Decide on the wrapper binary.set _WRAPPER_BASE=wrapperset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exeif exist "%_WRAPPER_EXE%" goto confset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exeif exist "%_WRAPPER_EXE%" goto confset _WRAPPER_EXE=%_REALPATH%%_WRAPPER_BASE%.exeif exist "%_WRAPPER_EXE%" goto confecho Unable to locate a Wrapper executable using any of the following names:echo %_REALPATH%%_WRAPPER_BASE%-windows-x86-32.exeecho %_REALPATH%%_WRAPPER_BASE%-windows-x86-64.exeecho %_REALPATH%%_WRAPPER_BASE%.exepausegoto :eofremrem Find the wrapper.confrem:confset _WRAPPER_CONF="%~f1"if not %_WRAPPER_CONF%=="" goto startupset _WRAPPER_CONF="%_REALPATH%..\conf\wrapper.conf"remrem Uninstall the Wrapper as an NT service.rem:startup"%_WRAPPER_EXE%" -r %_WRAPPER_CONF%if not errorlevel 1 goto :eofpause



2、创建conf文件,其下编写wrapper.conf文件,设置变量在该文件中
# ------------------------------------------------------------------------# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements.  See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You under the Apache License, Version 2.0# (the "License"); you may not use this file except in compliance with# the License.  You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.# ------------------------------------------------------------------------#********************************************************************# Wrapper Properties#********************************************************************#wrapper.lang.folder=../langset.AGENT_HOME=E:\InforGuard-AGENTset.CLASSPATH=%LOCAL_CLASSPATH%;%AGENT_HOME%\libset.JAVA_HOME=%AGENT_HOME%\jre1.6# Java Applicationwrapper.working.dir=%AGENT_HOME%wrapper.java.command=%JAVA_HOME%\bin\java#wrapper.java.mainclass=org.trustie.loong.wrapper.Mainwrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleAppwrapper.java.classpath.1=%AGENT_HOME%/lib/wrapper.jarwrapper.java.classpath.2=%AGENT_HOME%/lib/log4j-1.2.14.jarwrapper.java.classpath.3=%AGENT_HOME%/lib/adapter-os-linux-kylin.jarwrapper.java.classpath.4=%AGENT_HOME%/lib/agent.jarwrapper.java.classpath.5=%AGENT_HOME%/lib/dom4j-1.6.1.jarwrapper.java.classpath.6=%AGENT_HOME%/lib/snmp4j-1.11.jarwrapper.java.classpath.7=%AGENT_HOME%/lib/env/STAR.jarwrapper.java.library.path.1=%AGENT_HOME%/lib/# Application Parameters.  Add parameters as needed starting from 1wrapper.app.parameter.1=com.cvicse.inforguard.utmp.collection.agent.AgentServer# JVM Parameters# note that n is the parameter number starting from 1.#wrapper.java.additional.1=-Dutmp.home="%UTMP_HOME%"wrapper.java.additional.2=-server -Xms64m -Xmx512m -XX:PermSize=64M -XX:MaxNewSize=256m#wrapper.java.additional.3=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005#wrapper.java.additional.4=-Dcom.sun.management.jmxremote# Uncomment to enable YourKit profiling#wrapper.java.additional.n=-Xrunyjpagent# Uncomment to enable remote debugging#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005# Initial Java Heap Size (in MB)wrapper.java.initmemory=64# Maximum Java Heap Size (in MB)wrapper.java.maxmemory=512#********************************************************************# 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=%AGENT_HOME%/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=10m# 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=5# 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 consolewrapper.console.title=InforGuard AGENT#********************************************************************# 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.# Name of the servicewrapper.ntservice.name=InforGuard AGENT# Display name of the servicewrapper.ntservice.displayname=InforGuard AGENT Application# Description of the servicewrapper.ntservice.description=InforGuard AGENT# Service dependencies.  Add dependencies as needed starting from 1wrapper.ntservice.dependency.1=# Mode in which the service is installed.  AUTO_START or DEMAND_STARTwrapper.ntservice.starttype=AUTO_START# Allow the service to interact with the desktop.wrapper.ntservice.interactive=falsewrapper.ping.timeout=30


3、拷贝jre1.6运行时环境到根目录下

4、拷贝wrapper.jar和wrapper-window-x86-32.dll到lib目录下


PS:

bin--------注册脚本以及卸载脚本、wrapper-window-x86-32.exe(32位和64位)

conf------脚本启动用到的变量在wrapper.conf中

lib目录下需要加入Java Service Wrapper工具的jar和dll文件,wrapper.jar、wrapper-windows-

原创粉丝点击