| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- @echo off
- rem Licensed to the Apache Software Foundation (ASF) under one or more
- rem contributor license agreements. See the NOTICE file distributed with
- rem this work for additional information regarding copyright ownership.
- rem The ASF licenses this file to You under the Apache License, Version 2.0
- rem (the "License"); you may not use this file except in compliance with
- rem the License. You may obtain a copy of the License at
- rem
- rem http://www.apache.org/licenses/LICENSE-2.0
- rem
- rem Unless required by applicable law or agreed to in writing, software
- rem distributed under the License is distributed on an "AS IS" BASIS,
- rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- rem See the License for the specific language governing permissions and
- rem limitations under the License.
- rem ---------------------------------------------------------------------------
- rem Start/Stop Script for the CATALINA Server
- rem
- rem For supported commands call "catalina.bat help" or see the usage section
- rem towards the end of this file.
- rem
- rem Environment Variable Prerequisites
- rem
- rem Do not set the variables in this script. Instead put them into a script
- rem setenv.bat in CATALINA_BASE/bin to keep your customizations separate.
- rem
- rem WHEN RUNNING TOMCAT AS A WINDOWS SERVICE:
- rem Note that the environment variables that affect the behavior of this
- rem script will have no effect at all on Windows Services. As such, any
- rem local customizations made in a CATALINA_BASE/bin/setenv.bat script
- rem will also have no effect on Tomcat when launched as a Windows Service.
- rem The configuration that controls Windows Services is stored in the Windows
- rem Registry, and is most conveniently maintained using the "tomcat8w.exe"
- rem maintenance utility.
- rem
- rem CATALINA_HOME May point at your Catalina "build" directory.
- rem
- rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
- rem of a Catalina installation. If not present, resolves to
- rem the same directory that CATALINA_HOME points to.
- rem
- rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
- rem "run" or "debug" command is executed.
- rem Include here and not in JAVA_OPTS all options, that should
- rem only be used by Tomcat itself, not by the stop process,
- rem the version command etc.
- rem Examples are heap size, GC logging, JMX ports etc.
- rem
- rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
- rem the JVM should use (java.io.tmpdir). Defaults to
- rem %CATALINA_BASE%\temp.
- rem
- rem JAVA_HOME Must point at your Java Development Kit installation.
- rem Required to run the with the "debug" argument.
- rem
- rem JRE_HOME Must point at your Java Runtime installation.
- rem Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
- rem are both set, JRE_HOME is used.
- rem
- rem JAVA_OPTS (Optional) Java runtime options used when any command
- rem is executed.
- rem Include here and not in CATALINA_OPTS all options, that
- rem should be used by Tomcat and also by the stop process,
- rem the version command etc.
- rem Most options should go into CATALINA_OPTS.
- rem
- rem JAVA_ENDORSED_DIRS (Optional) Lists of of semi-colon separated directories
- rem containing some jars in order to allow replacement of APIs
- rem created outside of the JCP (i.e. DOM and SAX from W3C).
- rem It can also be used to update the XML parser implementation.
- rem This is only supported for Java <= 8.
- rem Defaults to $CATALINA_HOME/endorsed.
- rem
- rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
- rem command is executed. The default is "dt_socket".
- rem
- rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
- rem command is executed. The default is localhost:8000.
- rem
- rem JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start"
- rem command is executed. Specifies whether JVM should suspend
- rem execution immediately after startup. Default is "n".
- rem
- rem JPDA_OPTS (Optional) Java runtime options used when the "jpda start"
- rem command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
- rem and JPDA_SUSPEND are ignored. Thus, all required jpda
- rem options MUST be specified. The default is:
- rem
- rem -agentlib:jdwp=transport=%JPDA_TRANSPORT%,
- rem address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
- rem
- rem JSSE_OPTS (Optional) Java runtime options used to control the TLS
- rem implementation when JSSE is used. Default is:
- rem "-Djdk.tls.ephemeralDHKeySize=2048"
- rem
- rem CATALINA_LOGGING_CONFIG (Optional) Override Tomcat's logging config file
- rem Example (all one line)
- rem set CATALINA_LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
- rem
- rem LOGGING_CONFIG Deprecated
- rem Use CATALINA_LOGGING_CONFIG
- rem This is only used if CATALINA_LOGGING_CONFIG is not set
- rem and LOGGING_CONFIG starts with "-D..."
- rem
- rem LOGGING_MANAGER (Optional) Override Tomcat's logging manager
- rem Example (all one line)
- rem set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
- rem
- rem TITLE (Optional) Specify the title of Tomcat window. The default
- rem TITLE is Tomcat if it's not specified.
- rem Example (all one line)
- rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
- rem ---------------------------------------------------------------------------
- setlocal
- rem Suppress Terminate batch job on CTRL+C
- if not ""%1"" == ""run"" goto mainEntry
- if "%TEMP%" == "" goto mainEntry
- if exist "%TEMP%\%~nx0.run" goto mainEntry
- echo Y>"%TEMP%\%~nx0.run"
- if not exist "%TEMP%\%~nx0.run" goto mainEntry
- echo Y>"%TEMP%\%~nx0.Y"
- call "%~f0" %* <"%TEMP%\%~nx0.Y"
- rem Use provided errorlevel
- set RETVAL=%ERRORLEVEL%
- del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1
- exit /B %RETVAL%
- :mainEntry
- del /Q "%TEMP%\%~nx0.run" >NUL 2>&1
- rem Guess CATALINA_HOME if not defined
- set "CURRENT_DIR=%cd%"
- if not "%CATALINA_HOME%" == "" goto gotHome
- set "CATALINA_HOME=%CURRENT_DIR%"
- if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
- cd ..
- set "CATALINA_HOME=%cd%"
- cd "%CURRENT_DIR%"
- :gotHome
- if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
- echo The CATALINA_HOME environment variable is not defined correctly
- echo This environment variable is needed to run this program
- goto end
- :okHome
- rem Copy CATALINA_BASE from CATALINA_HOME if not defined
- if not "%CATALINA_BASE%" == "" goto gotBase
- set "CATALINA_BASE=%CATALINA_HOME%"
- :gotBase
- rem Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a semi-colon
- rem as this is used as the separator in the classpath and Java provides no
- rem mechanism for escaping if the same character appears in the path. Check this
- rem by replacing all occurrences of ';' with '' and checking that neither
- rem CATALINA_HOME nor CATALINA_BASE have changed
- if "%CATALINA_HOME%" == "%CATALINA_HOME:;=%" goto homeNoSemicolon
- echo Using CATALINA_HOME: "%CATALINA_HOME%"
- echo Unable to start as CATALINA_HOME contains a semicolon (;) character
- goto end
- :homeNoSemicolon
- if "%CATALINA_BASE%" == "%CATALINA_BASE:;=%" goto baseNoSemicolon
- echo Using CATALINA_BASE: "%CATALINA_BASE%"
- echo Unable to start as CATALINA_BASE contains a semicolon (;) character
- goto end
- :baseNoSemicolon
- rem Ensure that any user defined CLASSPATH variables are not used on startup,
- rem but allow them to be specified in setenv.bat, in rare case when it is needed.
- set CLASSPATH=
- rem Get standard environment variables
- if not exist "%CATALINA_BASE%\bin\setenv.bat" goto checkSetenvHome
- call "%CATALINA_BASE%\bin\setenv.bat"
- goto setenvDone
- :checkSetenvHome
- if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
- :setenvDone
- rem Get standard Java environment variables
- if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
- echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
- echo This file is needed to run this program
- goto end
- :okSetclasspath
- call "%CATALINA_HOME%\bin\setclasspath.bat" %1
- if errorlevel 1 goto end
- rem Add on extra jar file to CLASSPATH
- rem Note that there are no quotes as we do not want to introduce random
- rem quotes into the CLASSPATH
- if "%CLASSPATH%" == "" goto emptyClasspath
- set "CLASSPATH=%CLASSPATH%;"
- :emptyClasspath
- set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar"
- if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
- set "CATALINA_TMPDIR=%CATALINA_BASE%\temp"
- :gotTmpdir
- rem Add tomcat-juli.jar to classpath
- rem tomcat-juli.jar can be over-ridden per instance
- if not exist "%CATALINA_BASE%\bin\tomcat-juli.jar" goto juliClasspathHome
- set "CLASSPATH=%CLASSPATH%;%CATALINA_BASE%\bin\tomcat-juli.jar"
- goto juliClasspathDone
- :juliClasspathHome
- set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar"
- :juliClasspathDone
- if not "%JSSE_OPTS%" == "" goto gotJsseOpts
- set "JSSE_OPTS=-Djdk.tls.ephemeralDHKeySize=2048"
- :gotJsseOpts
- set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"
- rem Register custom URL handlers
- rem Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
- set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
- rem Check for the deprecated LOGGING_CONFIG
- rem Only use it if CATALINA_LOGGING_CONFIG is not set and LOGGING_CONFIG starts with "-D..."
- if not "%LOGGING_CONFIG:~0,2%"=="-D" goto noLoggingDeprecation
- if not "%CATALINA_LOGGING_CONFIG%" == "" goto noLoggingDeprecation
- set "CATALINA_LOGGING_CONFIG=%LOGGING_CONFIG%"
- :noLoggingDeprecation
- if not "%CATALINA_LOGGING_CONFIG%" == "" goto noJuliConfig
- set CATALINA_LOGGING_CONFIG=-Dnop
- if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
- set CATALINA_LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
- :noJuliConfig
- if not "%LOGGING_MANAGER%" == "" goto noJuliManager
- set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
- :noJuliManager
- rem Configure JAVA 9 specific start-up parameters
- set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.lang=ALL-UNNAMED"
- set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.io=ALL-UNNAMED"
- set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util=ALL-UNNAMED"
- set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
- set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
- rem Java 9 no longer supports the java.endorsed.dirs
- rem system property. Only try to use it if
- rem JAVA_ENDORSED_DIRS was explicitly set
- rem or CATALINA_HOME/endorsed exists.
- set ENDORSED_PROP=ignore.endorsed.dirs
- if "%JAVA_ENDORSED_DIRS%" == "" goto noEndorsedVar
- set ENDORSED_PROP=java.endorsed.dirs
- goto doneEndorsed
- :noEndorsedVar
- if not exist "%CATALINA_HOME%\endorsed" goto doneEndorsed
- set ENDORSED_PROP=java.endorsed.dirs
- :doneEndorsed
- rem ----- Execute The Requested Command ---------------------------------------
- echo Using CATALINA_BASE: "%CATALINA_BASE%"
- echo Using CATALINA_HOME: "%CATALINA_HOME%"
- echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"
- if ""%1"" == ""debug"" goto use_jdk
- echo Using JRE_HOME: "%JRE_HOME%"
- goto java_dir_displayed
- :use_jdk
- echo Using JAVA_HOME: "%JAVA_HOME%"
- :java_dir_displayed
- echo Using CLASSPATH: "%CLASSPATH%"
- echo Using CATALINA_OPTS: "%CATALINA_OPTS%"
- set _EXECJAVA=%_RUNJAVA%
- set MAINCLASS=org.apache.catalina.startup.Bootstrap
- set ACTION=start
- set SECURITY_POLICY_FILE=
- set DEBUG_OPTS=
- set JPDA=
- if not ""%1"" == ""jpda"" goto noJpda
- set JPDA=jpda
- if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
- set JPDA_TRANSPORT=dt_socket
- :gotJpdaTransport
- if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
- set JPDA_ADDRESS=localhost:8000
- :gotJpdaAddress
- if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
- set JPDA_SUSPEND=n
- :gotJpdaSuspend
- if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
- set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
- :gotJpdaOpts
- shift
- :noJpda
- if ""%1"" == ""debug"" goto doDebug
- if ""%1"" == ""run"" goto doRun
- if ""%1"" == ""start"" goto doStart
- if ""%1"" == ""stop"" goto doStop
- if ""%1"" == ""configtest"" goto doConfigTest
- if ""%1"" == ""version"" goto doVersion
- echo Usage: catalina ( commands ... )
- echo commands:
- echo debug Start Catalina in a debugger
- echo debug -security Debug Catalina with a security manager
- echo jpda start Start Catalina under JPDA debugger
- echo run Start Catalina in the current window
- echo run -security Start in the current window with security manager
- echo start Start Catalina in a separate window
- echo start -security Start in a separate window with security manager
- echo stop Stop Catalina
- echo configtest Run a basic syntax check on server.xml
- echo version What version of tomcat are you running?
- goto end
- :doDebug
- shift
- set _EXECJAVA=%_RUNJDB%
- set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\java"
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
- goto execCmd
- :doRun
- shift
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
- goto execCmd
- :doStart
- shift
- if "%TITLE%" == "" set TITLE=Tomcat
- set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy"
- goto execCmd
- :doStop
- shift
- set ACTION=stop
- set CATALINA_OPTS=
- goto execCmd
- :doConfigTest
- shift
- set ACTION=configtest
- set CATALINA_OPTS=
- goto execCmd
- :doVersion
- %_EXECJAVA% -classpath "%CATALINA_HOME%\lib\catalina.jar" org.apache.catalina.util.ServerInfo
- goto end
- :execCmd
- rem Get remaining unshifted command line arguments and save them in the
- set CMD_LINE_ARGS=
- :setArgs
- if ""%1""=="""" goto doneSetArgs
- set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
- shift
- goto setArgs
- :doneSetArgs
- rem Execute Java with the applicable properties
- if not "%JPDA%" == "" goto doJpda
- if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
- %_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
- goto end
- :doSecurity
- %_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%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%
- goto end
- :doJpda
- if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
- %_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
- goto end
- :doSecurityJpda
- %_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%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%
- goto end
- :end
|