There are several ways to set up Tomcat for running on different platforms. The main documentation for this is a file called RUNNING.txt. We encourage you to refer to that file if the information below does not answer some of your questions.
Installing Tomcat on Windows can be done easily using the Windows installer. Its interface and functionality is similar to other wizard based installers, with only a few items of interest.
JAVA_HOMEenvironment variable. It is not mandatory to use the default JRE detected by the installer. Any installed Java 8 or later JRE (32-bit or 64-bit) may be used.
/C=<config file>command line argument. The configuration file uses the format
name=valuewith each pair on a separate line. The names of the available configuration options are:
/D=it is possible to perform fully configured unattended installs of Apache Tomcat.
The installer will create shortcuts allowing starting and configuring Tomcat. It is important to note that the Tomcat administration web application can only be used when Tomcat is running.
Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project. Source tarballs for jsvc are included with the Tomcat binaries, and need to be compiled. Building jsvc requires a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.
Before running the script, the
variable should be set to the base path of the JDK. Alternately, when
./configure script, the path of the JDK may
be specified using the
--with-java parameter, such as
Using the following commands should result in a compiled jsvc binary,
located in the
$CATALINA_HOME/bin folder. This assumes
that GNU TAR is used, and that
CATALINA_HOME is an
environment variable pointing to the base path of the Tomcat
Please note that you should use the GNU make (gmake) instead of the native BSD make on FreeBSD systems.
cd $CATALINA_HOME/bin tar xvfz commons-daemon-native.tar.gz cd commons-daemon-1.1.x-native-src/unix ./configure make cp jsvc ../.. cd ../..
Tomcat can then be run as a daemon using the following commands.
CATALINA_BASE=$CATALINA_HOME cd $CATALINA_HOME ./bin/jsvc \ -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \ -outfile $CATALINA_BASE/logs/catalina.out \ -errfile $CATALINA_BASE/logs/catalina.err \ -Dcatalina.home=$CATALINA_HOME \ -Dcatalina.base=$CATALINA_BASE \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \ org.apache.catalina.startup.Bootstrap
When running on Java 9 you will need to additionally specify the following when starting jsvc to avoid warnings on shutdown.
... --add-opens=java.base/java.lang=ALL-UNNAMED \ --add-opens=java.base/java.io=ALL-UNNAMED \ --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED \ ...
You may also need to specify
-jvm server if the JVM defaults
to using a server VM rather than a client VM. This has been observed on
jsvc has other useful parameters, such as
causes it to switch to another user after the daemon initialization is
complete. This allows, for example, running Tomcat as a non privileged
user while still being able to use privileged ports. Note that if you
use this option and start Tomcat as root, you'll need to disable the
org.apache.catalina.security.SecurityListener check that
prevents Tomcat starting when running as root.
jsvc --help will return the full jsvc usage
information. In particular, the
-debug option is useful
to debug issues running jsvc.
$CATALINA_HOME/bin/daemon.sh can be used as a
template for starting Tomcat automatically at boot time from
/etc/init.d with jsvc.
Note that the Commons-Daemon JAR file must be on your runtime classpath to run Tomcat in this manner. The Commons-Daemon JAR file is in the Class-Path entry of the bootstrap.jar manifest, but if you get a ClassNotFoundException or a NoClassDefFoundError for a Commons-Daemon class, add the Commons-Daemon JAR to the -cp argument when launching jsvc.