参考网贴
http://xy-z487.iteye.com/blog/288926
http://liuyxit.iteye.com/blog/66369
解压版的tomcat6只需要在系统环境变量中增加JAVA_HOME 变量和path中增加 java的bin目录,其它都无需设置
我用的绿色解压版中包含 service.bat
service.bat install 注册系统服务
service.bat remove 卸载服务,运行状态下也能成功卸载
这样注册的系统是手工启动模式
编辑"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop
这一行,在后面增加 --Startup auto,注册的服务就是自动启动了
我的系统使用了mysql,包括系统全局变量在内的所有配置以及卸载都在脚本中设置
我的脚本如下:
安装脚本install. bat
@echo off
ECHO %cd%
set INSTALL_DIR=%cd%
set MYSQL_HOME=%INSTALL_DIR%\MySQL\MySQL Server 5.1
set TOMCAT_HOME=%INSTALL_DIR%\Tomcat 6.0\
set MYJAVA_HOME=%INSTALL_DIR%\java\jdk1.6.0_17
echo 开始*****管理系统
echo -----------------------------
rem 注册环境变量
if "%JAVA_HOME%" == "" (
echo "注册JAVA_HOME环境变量"
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%MYJAVA_HOME%"
set JAVA_HOME=%MYJAVA_HOME%
)
if "%JAVA_HOME%" == "" (
echo "错误:注册JAVA_HOME环境变量失败!"
echo 请手工定义
echo 变量名:JAVA_HOME 变量值 %MYJAVA_HOME%
goto end
)
Call :InPath "%MYSQL_HOME%\bin" Result
IF %Result% == 0 (
echo "添加%MYSQL_HOME%\bin 到path变量"
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;%MYSQL_HOME%\bin"
set PATH=%path%;%MYSQL_HOME%\bin
)
Call :InPath "%MYSQL_HOME%\bin" Result
IF %Result% == 0 (
echo "错误:添加%MYSQL_HOME%\bin 到path变量失败!请手工添加"
goto end
)
Call :InPath "%MYJAVA_HOME%\bin" Result
IF %Result% == 0 (
echo "添加%MYJAVA_HOME%\bin 到path变量"
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;%MYJAVA_HOME%\bin"
set PATH=%path%;%MYJAVA_HOME%\bin
)
Call :InPath "%MYJAVA_HOME%\bin" Result
IF %Result% == 0 (
echo "错误:添加%MYJAVA_HOME%\bin 到path变量失败!请手工添加"
goto end
)
rem 注册MySQL服务
SET PATH=%PATH%;%MYSQL_HOME%\bin
for /f %%i in ('net start') do if %%i==MySQL goto MySQL_InstallOK
goto MySQL_NotRunning
:MySQL_IsRunning
echo "MySQL服务已经存在,重新安装本系统使用的MySQL服务!"
net stop mysql
mysqld.exe --remove
goto createmyini
:MySQL_NotRunning
echo "安装本系统使用的MySQL数据库服务!"
:createmyini
cd %MYSQL_HOME%
copy myini.data my.ini
echo basedir="%MYSQL_HOME%">>my.ini
echo datadir="%MYSQL_HOME%/Data/">>my.ini
cd bin
mysqld --install MySQL --defaults-file="%MYSQL_HOME%\my.ini"
cd %INSTALL_DIR%
net start mysql
for /f %%i in ('net start') do if %%i==MySQL goto MySQL_InstallOK
echo "错误:MySQL数据库服务安装失败!"
goto end
:MySQL_InstallOK
echo "MySQL数据库服务安装成功!"
if not "%JAVA_HOME%" == "" goto okHome
echo JAVA_HOME 环境变量没有定义,请手工定义
echo 变量名:JAVA_HOME 变量值 %MYJAVA_HOME%
echo 系统PATH变量中必须包含 %MYJAVA_HOME%\bin;%MYSQL_HOME%\bin 目录
echo 需要java环境运行本系统
goto end
rem 注册Tomcat6服务
:okHome
for /f %%i in ('net start') do if %%i==Apache goto Tomcat6_InstallOK
cd %TOMCAT_HOME%\bin
call service.bat install
:createserverxml
cd ../conf
copy serverxml.data server.xml
echo ^<Context path="/pims" docBase="%INSTALL_DIR%\WebRoot" reloadable="true"/^> >>server.xml
echo ^</Host^> >>server.xml
echo ^</Engine^> >>server.xml
echo ^</Service^> >>server.xml
echo ^</Server^> >>server.xml
cd %INSTALL_DIR%
net start Tomcat6
:Tomcat6_InstallOK
echo Tomcat6安装完毕!
:end
set MYSQL_HOME=
set TOMCAT_HOME=
set MYJAVA_HOME=
set JAVA_HOME=
echo 系统安装结束,请在浏览器中打开http://localhost:8080/pims/测试系统安装是否成功
pause
goto :EOF
rem 判断一个目录是否已经在path中变量的函数
:InPath [In]Path [Out]0/1
SETLOCAL
SET LocalPathCopy=%PATH%
SET Result=0
:WHILE
IF "%LocalPathCopy%" == "" GOTO WEND
FOR /F "delims=;" %%I IN ("%LocalPathCopy%") DO (
IF /I "%%~I" == "%~1" (
SET Result=1
GOTO WEND
)
)
FOR /F "delims=; tokens=1,*" %%I IN ("%LocalPathCopy%") DO (
SET LocalPathCopy=%%~J
)
GOTO WHILE
:WEND
:InPathRet
ENDLOCAL & SET %2=%Result% & GOTO :EOF
卸载脚本 uninstall.bat
@echo off
set INSTALL_DIR=%cd%
set MYSQL_HOME=%INSTALL_DIR%\MySQL\MySQL Server 5.1
set TOMCAT_HOME=%INSTALL_DIR%\Tomcat 6.0\
echo 卸载JAVA_HOME环境变量
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /f
echo 卸载MySQL数据库服务
for /f %%i in ('net start') do if %%i==MySQL goto MySQL_IsRunning
:MySQL_IsRunning
net stop mysql
:MySQL_NotRunning
cd %MYSQL_HOME%\bin
mysqld.exe --remove
echo 卸载Tomcat6服务
cd %TOMCAT_HOME%\bin
for /f %%i in ('net start') do if %%i==Apache goto Tomcat6_IsRunning
:Tomcat6_IsRunning
rem tomcat6可以不停止直接卸载服务
rem net stop Tomcat6
:Tomcat6_NotRunning
call service.bat remove
echo 养老统筹管理系统运行所需服务卸载完毕!要想完整卸载本系统,请手工删除%INSTALL_DIR%目录
cd %INSTALL_DIR%
pause