Existe um texto de ajuda em catalina.sh
. Vou citar aqui:
# Do not set the variables in this script. Instead put them into a script
# setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
#
# JAVA_HOME Must point at your Java Development Kit installation.
# Required to run the with the "debug" argument.
# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=
if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
. "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
. "$CATALINA_HOME/bin/setenv.sh"
fi
Quando você inicia tomcat
usando catalina.sh
, ele procura pelo arquivo setenv.sh
e procura . Está pesquisando em CATALINA_HOME
ou CATALINA_BASE
.
Então, a melhor maneira de definir JAVA_HOME
para o tomcat
é:
- Crie um script chamado
setenv.sh
na pastaCATALINA_BASE/bin
, se ainda não existir. -
Adicione esta linha a
setenv.sh
export JAVA_HOME=/opt/java/jdk1.8.0_05
-
Torne-o executável.
Por que você deve usar esta solução:
Definir variável de ambiente no script é mais seguro. Sempre tente definir variáveis o mais localmente possível. Tente não usar /etc/environment
, /etc/profile
e outros se você realmente não precisar de Global Environment Variable
. A configuração de JAVA_HOME
in setenv.sh
permite usar diferentes tomcats com diferentes aplicativos que precisam de versões diferentes de java
, mas executados por um usuário. Outro ambiente de usuário não seria afetado por você.