`
jinyanhui2008
  • 浏览: 312132 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

手工将tomcat安装为服务及tomcat命令说明

    博客分类:
  • Java
阅读更多
 

最近做了一个项目需要将tomcat和产品功能共同打包进行安装,设计方案是将tomcat用打包工具(我用的是wise)进行拷贝,然后再通过执行相关命令进行服务安装,具体如下(做成批处理文件假设为Installtomcat.bat):

@echo off
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem NT Service Install/Uninstall script
rem
rem Options
rem install                Install the service using Tomcat5 as service name.
rem                        Service is installed using default settings.
rem remove                 Remove the service from the System.
rem
rem name        (optional) If the second argument is present it is considered
rem                        to be new service name                                          
rem
rem $Id: service.bat,v 1.5.2.2 2004/09/05 07:57:57 mturk Exp $
rem ---------------------------------------------------------------------------

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%cd%
if exist "%CATALINA_HOME%\bin\tomcat5.exe" goto okHome
rem CD to the upper dir
cd ..
set CATALINA_HOME=%cd%
:gotHome
if exist "%CATALINA_HOME%\bin\tomcat5.exe" goto okHome
echo The tomcat.exe was not found...
echo The CATALINA_HOME environment variable is not defined correctly.
echo This environment variable is needed to run this program
goto end
rem Make sure prerequisite environment variables are set
if not "%J***A_HOME%" == "" goto okHome
echo The J***A_HOME environment variable is not defined
echo This environment variable is needed to run this program
goto end
:okHome
if not "%CATALINA_BASE%" == "" goto gotBase
set CATALINA_BASE=%CATALINA_HOME%
:gotBase
 
set EXECUTABLE=%CATALINA_HOME%\bin\tomcat5.exe

rem Set default Service name
set SERVICE_NAME=Tomcat5
set PR_DISPLAYNAME=Apache Tomcat

if "%1" == "" goto displayUsage
if "%2" == "" goto setServiceName
set SERVICE_NAME=%2
set PR_DISPLAYNAME=Apache Tomcat %2
:setServiceName
if %1 == install goto doInstall
if %1 == remove goto doRemove
echo Unknown parameter "%1"
:displayUsage
echo
echo Usage: service.bat install/remove [service_name]
goto end

:doRemove
rem Remove the service
"%EXECUTABLE%" //DS//%SERVICE_NAME%
echo The service '%SERVICE_NAME%' has been removed
goto end

:doInstall
rem Install the service
echo Installing the service '%SERVICE_NAME%' ...
echo Using CATALINA_HOME:    %CATALINA_HOME%
echo Using J***A_HOME:        %J***A_HOME%

rem Use the environment variables as an exaple
rem Each command line option is prefixed with PR_

set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat
set PR_INSTALL=%EXECUTABLE%
set PR_LOGPATH=%CATALINA_HOME%\logs
set PR_CLASSPATH=%J***A_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar
rem Set the server jvm from J***A_HOME
set PR_JVM=%J***A_HOME%\jre\bin\server\jvm.dll
if exist "%PR_JVM%" goto foundJvm
rem Set the client jvm from J***A_HOME
set PR_JVM=%J***A_HOME%\jre\bin\client\jvm.dll
if exist "%PR_JVM%" goto foundJvm
set PR_JVM=auto
:foundJvm
echo Using JVM:              %PR_JVM%
"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop
if not errorlevel 1 goto installed
echo Failed installing '%SERVICE_NAME%' service
goto end
:installed
rem Clear the environment variables. They are not needed any more.
set PR_DISPLAYNAME=
set PR_DESCRIPTION=
set PR_INSTALL=
set PR_LOGPATH=
set PR_CLASSPATH=
set PR_JVM=
rem Set extra parameters
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed; --StartMode jvm --StopMode jvm
rem More extra parameters
set PR_STDOUTPUT=%CATALINA_HOME%\logs\stdout.log
set PR_STDERROR=%CATALINA_HOME%\logs\stderr.log
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256
echo The service '%SERVICE_NAME%' has been installed.

:end
cd %CURRENT_DIR%

如果你的系统中配置了启动参数,可通过以上命令进行修改,通过启动tomcat服务进行自动加载。

安装服务:installtomcat.bat install

卸载服务:installtomcat.bat remove

tomcat为5.0,jdk为1.5,前提必须是java可用,测试通过。

附tomcat命令集合说明:

Tomcat5.exe可以把Tomcat加入服务;Tomcat5w.exe可以辅助配置已经添加的服务。

Tomcat5w.exe 监控程序
Tomcat5w是一个监控和配置Tomcat服务的图形界面应用程序。可用的命令行选项如下:

//ES// 编辑服务配置,这是缺省的选项。如果没有提供任何选项,却把tomcat5w.exe重命名为%SERVICE_NAME%.exe运行的话,这个选项就被调用。
//MS// 监控服务,讲图标放置到系统托盘中。

Tomcat5.exe 服务程序
命令行选项
每一个命令行指令都形如//XX//ServiceName

可用的命令行选项如下:

The ServiceName is the name of the executable without exe sufix, meaning Tomcat5
//TS// 控制台应用程序模式运行服务,这是缺省的操作。在没有提供任何选项开关的时候,它被调用。服务名是执行文件没有exe后缀的部分,如Tomat5。
//RS// Run Service的缩写,运行服务,在服务管理器(Sevices.msc)中启动服务的时候被调用。
//SS// Stop Service的缩写,停止服务,在服务管理器中停止服务时被调用。
//US// Update Service的缩写,更新服务参数。
//IS// Install service 的缩写,安装服务 。
//DS// Delete service的缩写,删除服务,如果服务正在运行,首先删除服务。

命令行参数
每一个命令行参数以“--”开头。如果命令行以“++”为前缀,则它的值附加到存在的选项上。如果存在和命令行参数有同样的名字,但是以PR_开头的环境变量,它将被优先使用。例如:
set PR_CLASSPATH=xx.jar
等同于
--Classpath=xx.jar
作为命令行参数。

参数名 缺省值 描述
--Description  服务名描述 (最多1024个字符)
--DisplayName ServiceName 服务显示名称
--Install procrun.exe //RS//ServiceName 安装服务
--Startup  manual Service 服务启动模式,可以是自动或者手动,值分别为:auto和manual
--DependsOn  列举此服务依赖的所有服务. 被依赖的服务用#或者;分隔。
--Environment  列决提供给服务使用的环境变量,形如key=value。多个环境变量之间用#或者;分隔。
--User  运行服务使用的用户账号。 只有在运行于没有“作为服务登录”权限下的账户中使用StartMode java 或者作为服务的exe可运行程序选项的情况下才被使用。
--Password  --User参数中用户的密码
--JavaHome J***A_HOME 定义了J***A_HOME环境变量时,设置一个不同的J***A_HOME环境变量
--Jvm auto 用auto或指定jvm.dll的全路径。这里可以使用环境变量表达式。
--JvmOptions -Xrs  列举形如-D 或 -X 的开关传递给JVM虚拟机。多个选项开关之间用#或者;分隔。
--Classpath  设置Java的ClassPath环境变量。
--JvmMs  设置初始使用的内存池容量,单位为MB。
--JvmMx  设置最大使用的内存池容量,单位为MB。
--JvmSs  线程堆栈容量,单位为KB
--StartImage  要被运行的可执行文件
--StartPath  开始运行可执行文件的工作路径
--StartClass  启动时使用的类
--StartParams  列决要传递给StartImage 或 StartClass的参数。多个参数之间用#或者;分隔。
--StartMethod Main 启动服务调用的方法,如果不是main,这里写上方法名
--StartMode executable 可以是jvm、java或exe 之一
--StopImage  停止服务调用的可执行文件
--StopPath  停止服务执行的文件的工作路径
--StopClass  停止服务调用的类
--StopParams  列决要传递给 StopImage 或 StopClass 的参数。多个参数之间用#或者;分隔。
--StopMethod Main 停止服务调用的方法,如果不是main,这里写上方法名
--StopMode executable 可以是jvm、java或exe 之一
--StopTimeout No Timeout 定义一个服务顺利退出的延时,单位为秒。
--LogPath 定义日志路径
--LogPrefix jakarta_service 定义日志文件名前缀
--LogLevel INFO 定义日志等级,可选值:error, info, warn或debug
--StdOutput  重定向stdout文件名
--StdError  重定向Stderr文件名

分享到:
评论

相关推荐

    CentOS_JDK_Tomcat配置

    1、 文件共享 A:WINdows上创建一个文件夹,并共享...B:在centOS上使用mount命令挂载文件夹 类似挂载U盘 2、 配置服务器 (一)、安装jdk A、下载JDK B、复制jdk到/usr目录下 C、运行jdk文件 ./jdk D、配置环境变量

    监视小工具C++做的

    先说说需求:由于我们的程序java调用c++的动态库好像有bug,导致Tomcat会自己崩溃,故开发此程序,实时监控tomcat进程,如果down掉,马上重新启动。 因此这个程序相当于监控程序。 现在,我对其又进行了定制修改。...

    Java项目设计与开发范例

    chapter1:第1章的源程序可使用Jdk1.3以上的任何版本编译和运行,命令运行商品库存管理系统 的命令格式为:java chapter1. MainFrame。 <br> chapter2:第2章的主类是Simulator,运行环境同第1章,也可以在...

    bankPay-转卡系统卡转卡系统支付宝转卡系统app自动回调.zip

    注:war包放入tomcat/webapps目录,tomcat/bin 执行●命令startup.sh 开发教程 ●mysql,创建数据库,手工导入sql文件完成初始化。 ●vscode 大家常用的支付方式一般都是支付宝微信扫码或者转账支付,这两种支付...

    Redis云管理平台CacheCloud.zip

    例如:100个redis数据节点组成的redis-cluster集群,如果单纯手工安装,既耗时又容易出错。2.实例碎片化 作为一个Redis管理员(可以看做redis DBA)需要帮助开发者管理上百个Redis-Cluster集群,分布在数百台机器上,...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    8.1.2 Docker 常用命令及参数 242 8.1.3 下载本书所需的Docker 镜像 247 8.1.4 异常处理 247 8.2 Spring Data JPA 248 8.2.1 点睛Spring Data JPA 248 8.2.2 Spring Boot 的支持 258 8.2.3 实战 260 8.3 Spring Data...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    8.1.2 Docker 常用命令及参数 242 8.1.3 下载本书所需的Docker 镜像 247 8.1.4 异常处理 247 8.2 Spring Data JPA 248 8.2.1 点睛Spring Data JPA 248 8.2.2 Spring Boot 的支持 258 8.2.3 实战 260 8.3 Spring Data...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    8.1.2 Docker 常用命令及参数 242 8.1.3 下载本书所需的Docker 镜像 247 8.1.4 异常处理 247 8.2 Spring Data JPA 248 8.2.1 点睛Spring Data JPA 248 8.2.2 Spring Boot 的支持 258 8.2.3 实战 260 8.3 Spring Data...

    java 面试题 总结

    如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion...

    ant_junitc测试

    在拙作《纯手工编写第一个Hibernate程序》和《对“纯手工编写的第一个Hibernate程序”的改进》中,笔者没有使用任何IDE工具,全凭普通的文本编辑器和相关命令完成了两个简单的Hibernate程序的编写、编译和运行。...

    超级有影响力霸气的Java面试题大全文档

    如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion...

    Web安全深度剖析(张柄帅)

    《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web应用程序中存在的漏洞,防患于未然。 《Web安全深度剖析...

    t淘淘商城项目 商城项目 视频和源码教程 详细

    Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。 Maven 3.3.3(开发工具自带) Tomcat 7.0.53(Maven Tomcat Plugin) JDK 1.7 Mysql 5.6 Nginx 1.8.0 Redis 3.0.0 Win7 操作系统 SVN(版本...

    iuhyiuhkjh908u0980

    安装ivy主要有两种方式,手工安装或者自动安装。 1) 手工安装 从这里下载你想要的版本,在任何你想的地方解开下载的zip文件,并复制ivy的jar文件到你的ant的lib目录(ANT_HOME/lib). 如果你使用ant 1.6.0或者更高,你...

    Oracle 10g 学习笔记

    │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ ...

    测试培训教材

    将最底层的子要求转换为测试 把Cruise Seatch转换为步骤、再次转换为测试 选择主题路径: 查看转换结果: 练习2:从Office导入需求到QC 参考 QCMSWordAddin.pdf 和 QCMSExcelAddin.pdf 项目管理员可以...

Global site tag (gtag.js) - Google Analytics