# rm-rf.es

JAVA_OPTS: Configurar Java Environment Options en Tomcat

La variable JAVA_OPTS permite especificar en una instancia de Tomcat distinas opciones de configuración y variables de entorno, que se aplican a la hora de iniciar o parar el servidor de aplicaciones.

Existe controversia en si determinadas variables y parámetros deben ser aplicados dentro de la variable JAVA_OPTS o en CATALINA_OPTS, por ejemplo para límites de memoria. En principio, el contenido de ambas variables se envía a Tomcat durante el arranque del servicio, pero sólo las aplicadas en JAVA_OPTS son enviadas durante la parada del servicio. La otra y diferencia más importante es que la variable de entorno «JAVA_OPTS» puede ser utilizada por más servicios dentro del mismo sistema mientras que «CATALINA_OPTS» sólo es utilizada por Tomcat.

Dependiendo del tipo de instalación de Tomcat que hayamos realizado, esta variable y su contenido se definirá en distinta ubicación. En el caso de una instalación por repositorio o RPM, se declara en el archivo /etc/tomcat/tomcat.conf:

vi /etc/tomcat/tomcat.conf
# Use JAVA_OPTS to set java.library.path for libtcnative.so
#JAVA_OPTS="-Djava.library.path=/usr/lib"

En ese mismo archivo se definen otras variables de entorno como CATALINA_BASE, CATALINA_HOME, JAVA_HOME, etc.

En el caso de una instalación a través de los instaladores y paquetes precompilados que se ofrecen en el sitio web oficial de Apache Tomcat, estos parámetros se especifican en el script «setenv«. Este script se encuentra alguna de las siguientes rutas en el caso de Linux y *nix:

$CATALINA_BASE/bin/setenv.sh
$CATALINA_HOME/bin/setenv.sh

Y en el caso de Windows en las mismas rutas pero bajo el nombre de setenv.bat

$CATALINA_BASE/bin/setenv.bat
$CATALINA_HOME/bin/setenv.bat

El archivo debe tener permisos de lectura, no es necesaria escritura.

Para *nix, los parámetros se aplican como indicaba anteriormente, ejemplo:

# Use JAVA_OPTS to set java.library.path for libtcnative.so
#JAVA_OPTS="-Djava.library.path=/usr/lib"
JAVA_OPTS="-DNLS_DATE_FORMAT=DD/MM/YYYY -DNLS_LANG=SPANISH_SPAIN.WE8ISO8859P1 -Xms16384m -Xmx16384m"

Y en Windows:

  set "JAVA_OPTS=-DNLS_DATE_FORMAT=DD/MM/YYYY -DNLS_LANG=SPANISH_SPAIN.WE8ISO8859P1 -Xms16384m -Xmx16384m"
Salir de la versión móvil