316 lines
13 KiB
Batchfile
Executable File
316 lines
13 KiB
Batchfile
Executable File
@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 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 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 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 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 LOGGING_CONFIG (Optional) Override Tomcat's logging config file
|
|
rem Example (all one line)
|
|
rem set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
|
|
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 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 "%LOGGING_CONFIG%" == "" goto noJuliConfig
|
|
set LOGGING_CONFIG=-Dnop
|
|
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
|
|
set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
|
|
:noJuliConfig
|
|
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
|
|
|
|
if not "%LOGGING_MANAGER%" == "" goto noJuliManager
|
|
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
|
:noJuliManager
|
|
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"
|
|
|
|
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%"
|
|
|
|
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=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% %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%
|
|
goto end
|
|
:doSecurity
|
|
%_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%
|
|
goto end
|
|
:doJpda
|
|
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
|
|
%_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%
|
|
goto end
|
|
:doSecurityJpda
|
|
%_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%
|
|
goto end
|
|
|
|
:end
|