Cheng Tang | 07b3087 | 2014-04-27 16:37:18 +0800 | [diff] [blame^] | 1 | @echo off
|
| 2 | rem Licensed to the Apache Software Foundation (ASF) under one or more
|
| 3 | rem contributor license agreements. See the NOTICE file distributed with
|
| 4 | rem this work for additional information regarding copyright ownership.
|
| 5 | rem The ASF licenses this file to You under the Apache License, Version 2.0
|
| 6 | rem (the "License"); you may not use this file except in compliance with
|
| 7 | rem the License. You may obtain a copy of the License at
|
| 8 | rem
|
| 9 | rem http://www.apache.org/licenses/LICENSE-2.0
|
| 10 | rem
|
| 11 | rem Unless required by applicable law or agreed to in writing, software
|
| 12 | rem distributed under the License is distributed on an "AS IS" BASIS,
|
| 13 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 14 | rem See the License for the specific language governing permissions and
|
| 15 | rem limitations under the License.
|
| 16 |
|
| 17 | if "%OS%" == "Windows_NT" setlocal
|
| 18 | rem ---------------------------------------------------------------------------
|
| 19 | rem Start/Stop Script for the CATALINA Server
|
| 20 | rem
|
| 21 | rem Environment Variable Prerequisites
|
| 22 | rem
|
| 23 | rem Do not set the variables in this script. Instead put them into a script
|
| 24 | rem setenv.bat in CATALINA_BASE/bin to keep your customizations separate.
|
| 25 | rem
|
| 26 | rem CATALINA_HOME May point at your Catalina "build" directory.
|
| 27 | rem
|
| 28 | rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
|
| 29 | rem of a Catalina installation. If not present, resolves to
|
| 30 | rem the same directory that CATALINA_HOME points to.
|
| 31 | rem
|
| 32 | rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
|
| 33 | rem "run" or "debug" command is executed.
|
| 34 | rem Include here and not in JAVA_OPTS all options, that should
|
| 35 | rem only be used by Tomcat itself, not by the stop process,
|
| 36 | rem the version command etc.
|
| 37 | rem Examples are heap size, GC logging, JMX ports etc.
|
| 38 | rem
|
| 39 | rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
|
| 40 | rem the JVM should use (java.io.tmpdir). Defaults to
|
| 41 | rem %CATALINA_BASE%\temp.
|
| 42 | rem
|
| 43 | rem JAVA_HOME Must point at your Java Development Kit installation.
|
| 44 | rem Required to run the with the "debug" argument.
|
| 45 | rem
|
| 46 | rem JRE_HOME Must point at your Java Runtime installation.
|
| 47 | rem Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
|
| 48 | rem are both set, JRE_HOME is used.
|
| 49 | rem
|
| 50 | rem JAVA_OPTS (Optional) Java runtime options used when any command
|
| 51 | rem is executed.
|
| 52 | rem Include here and not in CATALINA_OPTS all options, that
|
| 53 | rem should be used by Tomcat and also by the stop process,
|
| 54 | rem the version command etc.
|
| 55 | rem Most options should go into CATALINA_OPTS.
|
| 56 | rem
|
| 57 | rem JAVA_ENDORSED_DIRS (Optional) Lists of of semi-colon separated directories
|
| 58 | rem containing some jars in order to allow replacement of APIs
|
| 59 | rem created outside of the JCP (i.e. DOM and SAX from W3C).
|
| 60 | rem It can also be used to update the XML parser implementation.
|
| 61 | rem Defaults to $CATALINA_HOME/endorsed.
|
| 62 | rem
|
| 63 | rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
|
| 64 | rem command is executed. The default is "dt_socket".
|
| 65 | rem
|
| 66 | rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
|
| 67 | rem command is executed. The default is 8000.
|
| 68 | rem
|
| 69 | rem JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start"
|
| 70 | rem command is executed. Specifies whether JVM should suspend
|
| 71 | rem execution immediately after startup. Default is "n".
|
| 72 | rem
|
| 73 | rem JPDA_OPTS (Optional) Java runtime options used when the "jpda start"
|
| 74 | rem command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
|
| 75 | rem and JPDA_SUSPEND are ignored. Thus, all required jpda
|
| 76 | rem options MUST be specified. The default is:
|
| 77 | rem
|
| 78 | rem -agentlib:jdwp=transport=%JPDA_TRANSPORT%,
|
| 79 | rem address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
|
| 80 | rem
|
| 81 | rem LOGGING_CONFIG (Optional) Override Tomcat's logging config file
|
| 82 | rem Example (all one line)
|
| 83 | rem set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
|
| 84 | rem
|
| 85 | rem LOGGING_MANAGER (Optional) Override Tomcat's logging manager
|
| 86 | rem Example (all one line)
|
| 87 | rem set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
|
| 88 | rem
|
| 89 | rem TITLE (Optional) Specify the title of Tomcat window. The default
|
| 90 | rem TITLE is Tomcat if it's not specified.
|
| 91 | rem Example (all one line)
|
| 92 | rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
|
| 93 | rem
|
| 94 | rem
|
| 95 | rem
|
| 96 | rem $Id: catalina.bat 1344732 2012-05-31 14:08:02Z kkolinko $
|
| 97 | rem ---------------------------------------------------------------------------
|
| 98 |
|
| 99 | rem Suppress Terminate batch job on CTRL+C
|
| 100 | if not ""%1"" == ""run"" goto mainEntry
|
| 101 | if "%TEMP%" == "" goto mainEntry
|
| 102 | if exist "%TEMP%\%~nx0.run" goto mainEntry
|
| 103 | echo Y>"%TEMP%\%~nx0.run"
|
| 104 | if not exist "%TEMP%\%~nx0.run" goto mainEntry
|
| 105 | echo Y>"%TEMP%\%~nx0.Y"
|
| 106 | call "%~f0" %* <"%TEMP%\%~nx0.Y"
|
| 107 | rem Use provided errorlevel
|
| 108 | set RETVAL=%ERRORLEVEL%
|
| 109 | del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1
|
| 110 | exit /B %RETVAL%
|
| 111 | :mainEntry
|
| 112 | del /Q "%TEMP%\%~nx0.run" >NUL 2>&1
|
| 113 |
|
| 114 | rem Guess CATALINA_HOME if not defined
|
| 115 | set "CURRENT_DIR=%cd%"
|
| 116 | if not "%CATALINA_HOME%" == "" goto gotHome
|
| 117 | set "CATALINA_HOME=%CURRENT_DIR%"
|
| 118 | if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
|
| 119 | cd ..
|
| 120 | set "CATALINA_HOME=%cd%"
|
| 121 | cd "%CURRENT_DIR%"
|
| 122 | :gotHome
|
| 123 |
|
| 124 | if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
|
| 125 | echo The CATALINA_HOME environment variable is not defined correctly
|
| 126 | echo This environment variable is needed to run this program
|
| 127 | goto end
|
| 128 | :okHome
|
| 129 |
|
| 130 | rem Copy CATALINA_BASE from CATALINA_HOME if not defined
|
| 131 | if not "%CATALINA_BASE%" == "" goto gotBase
|
| 132 | set "CATALINA_BASE=%CATALINA_HOME%"
|
| 133 | :gotBase
|
| 134 |
|
| 135 | rem Ensure that any user defined CLASSPATH variables are not used on startup,
|
| 136 | rem but allow them to be specified in setenv.bat, in rare case when it is needed.
|
| 137 | set CLASSPATH=
|
| 138 |
|
| 139 | rem Get standard environment variables
|
| 140 | if not exist "%CATALINA_BASE%\bin\setenv.bat" goto checkSetenvHome
|
| 141 | call "%CATALINA_BASE%\bin\setenv.bat"
|
| 142 | goto setenvDone
|
| 143 | :checkSetenvHome
|
| 144 | if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
|
| 145 | :setenvDone
|
| 146 |
|
| 147 | rem Get standard Java environment variables
|
| 148 | if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
|
| 149 | echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
|
| 150 | echo This file is needed to run this program
|
| 151 | goto end
|
| 152 | :okSetclasspath
|
| 153 | call "%CATALINA_HOME%\bin\setclasspath.bat" %1
|
| 154 | if errorlevel 1 goto end
|
| 155 |
|
| 156 | rem Add on extra jar file to CLASSPATH
|
| 157 | rem Note that there are no quotes as we do not want to introduce random
|
| 158 | rem quotes into the CLASSPATH
|
| 159 | if "%CLASSPATH%" == "" goto emptyClasspath
|
| 160 | set "CLASSPATH=%CLASSPATH%;"
|
| 161 | :emptyClasspath
|
| 162 | set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar"
|
| 163 |
|
| 164 | if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
|
| 165 | set "CATALINA_TMPDIR=%CATALINA_BASE%\temp"
|
| 166 | :gotTmpdir
|
| 167 |
|
| 168 | rem Add tomcat-juli.jar to classpath
|
| 169 | rem tomcat-juli.jar can be over-ridden per instance
|
| 170 | if not exist "%CATALINA_BASE%\bin\tomcat-juli.jar" goto juliClasspathHome
|
| 171 | set "CLASSPATH=%CLASSPATH%;%CATALINA_BASE%\bin\tomcat-juli.jar"
|
| 172 | goto juliClasspathDone
|
| 173 | :juliClasspathHome
|
| 174 | set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar"
|
| 175 | :juliClasspathDone
|
| 176 |
|
| 177 | if not "%LOGGING_CONFIG%" == "" goto noJuliConfig
|
| 178 | set LOGGING_CONFIG=-Dnop
|
| 179 | if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
|
| 180 | set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
|
| 181 | :noJuliConfig
|
| 182 | set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
|
| 183 |
|
| 184 | if not "%LOGGING_MANAGER%" == "" goto noJuliManager
|
| 185 | set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
| 186 | :noJuliManager
|
| 187 | set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
|
| 188 |
|
| 189 | rem ----- Execute The Requested Command ---------------------------------------
|
| 190 |
|
| 191 | echo Using CATALINA_BASE: "%CATALINA_BASE%"
|
| 192 | echo Using CATALINA_HOME: "%CATALINA_HOME%"
|
| 193 | echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"
|
| 194 | if ""%1"" == ""debug"" goto use_jdk
|
| 195 | echo Using JRE_HOME: "%JRE_HOME%"
|
| 196 | goto java_dir_displayed
|
| 197 | :use_jdk
|
| 198 | echo Using JAVA_HOME: "%JAVA_HOME%"
|
| 199 | :java_dir_displayed
|
| 200 | echo Using CLASSPATH: "%CLASSPATH%"
|
| 201 |
|
| 202 | set _EXECJAVA=%_RUNJAVA%
|
| 203 | set MAINCLASS=org.apache.catalina.startup.Bootstrap
|
| 204 | set ACTION=start
|
| 205 | set SECURITY_POLICY_FILE=
|
| 206 | set DEBUG_OPTS=
|
| 207 | set JPDA=
|
| 208 |
|
| 209 | if not ""%1"" == ""jpda"" goto noJpda
|
| 210 | set JPDA=jpda
|
| 211 | if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
|
| 212 | set JPDA_TRANSPORT=dt_socket
|
| 213 | :gotJpdaTransport
|
| 214 | if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
|
| 215 | set JPDA_ADDRESS=8000
|
| 216 | :gotJpdaAddress
|
| 217 | if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
|
| 218 | set JPDA_SUSPEND=n
|
| 219 | :gotJpdaSuspend
|
| 220 | if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
|
| 221 | set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
|
| 222 | :gotJpdaOpts
|
| 223 | shift
|
| 224 | :noJpda
|
| 225 |
|
| 226 | if ""%1"" == ""debug"" goto doDebug
|
| 227 | if ""%1"" == ""run"" goto doRun
|
| 228 | if ""%1"" == ""start"" goto doStart
|
| 229 | if ""%1"" == ""stop"" goto doStop
|
| 230 | if ""%1"" == ""configtest"" goto doConfigTest
|
| 231 | if ""%1"" == ""version"" goto doVersion
|
| 232 |
|
| 233 | echo Usage: catalina ( commands ... )
|
| 234 | echo commands:
|
| 235 | echo debug Start Catalina in a debugger
|
| 236 | echo debug -security Debug Catalina with a security manager
|
| 237 | echo jpda start Start Catalina under JPDA debugger
|
| 238 | echo run Start Catalina in the current window
|
| 239 | echo run -security Start in the current window with security manager
|
| 240 | echo start Start Catalina in a separate window
|
| 241 | echo start -security Start in a separate window with security manager
|
| 242 | echo stop Stop Catalina
|
| 243 | echo configtest Run a basic syntax check on server.xml
|
| 244 | echo version What version of tomcat are you running?
|
| 245 | goto end
|
| 246 |
|
| 247 | :doDebug
|
| 248 | shift
|
| 249 | set _EXECJAVA=%_RUNJDB%
|
| 250 | set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\java"
|
| 251 | if not ""%1"" == ""-security"" goto execCmd
|
| 252 | shift
|
| 253 | echo Using Security Manager
|
| 254 | set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
|
| 255 | goto execCmd
|
| 256 |
|
| 257 | :doRun
|
| 258 | shift
|
| 259 | if not ""%1"" == ""-security"" goto execCmd
|
| 260 | shift
|
| 261 | echo Using Security Manager
|
| 262 | set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
|
| 263 | goto execCmd
|
| 264 |
|
| 265 | :doStart
|
| 266 | shift
|
| 267 | if not "%OS%" == "Windows_NT" goto noTitle
|
| 268 | if "%TITLE%" == "" set TITLE=Tomcat
|
| 269 | set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
|
| 270 | goto gotTitle
|
| 271 | :noTitle
|
| 272 | set _EXECJAVA=start %_RUNJAVA%
|
| 273 | :gotTitle
|
| 274 | if not ""%1"" == ""-security"" goto execCmd
|
| 275 | shift
|
| 276 | echo Using Security Manager
|
| 277 | set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
|
| 278 | goto execCmd
|
| 279 |
|
| 280 | :doStop
|
| 281 | shift
|
| 282 | set ACTION=stop
|
| 283 | set CATALINA_OPTS=
|
| 284 | goto execCmd
|
| 285 |
|
| 286 | :doConfigTest
|
| 287 | shift
|
| 288 | set ACTION=configtest
|
| 289 | set CATALINA_OPTS=
|
| 290 | goto execCmd
|
| 291 |
|
| 292 | :doVersion
|
| 293 | %_EXECJAVA% -classpath "%CATALINA_HOME%\lib\catalina.jar" org.apache.catalina.util.ServerInfo
|
| 294 | goto end
|
| 295 |
|
| 296 |
|
| 297 | :execCmd
|
| 298 | rem Get remaining unshifted command line arguments and save them in the
|
| 299 | set CMD_LINE_ARGS=
|
| 300 | :setArgs
|
| 301 | if ""%1""=="""" goto doneSetArgs
|
| 302 | set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
|
| 303 | shift
|
| 304 | goto setArgs
|
| 305 | :doneSetArgs
|
| 306 |
|
| 307 | rem Execute Java with the applicable properties
|
| 308 | if not "%JPDA%" == "" goto doJpda
|
| 309 | if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
|
| 310 | %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
|
| 311 | goto end
|
| 312 | :doSecurity
|
| 313 | %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
|
| 314 | goto end
|
| 315 | :doJpda
|
| 316 | if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
|
| 317 | %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
|
| 318 | goto end
|
| 319 | :doSecurityJpda
|
| 320 | %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
|
| 321 | goto end
|
| 322 |
|
| 323 | :end
|