Estoy intentando configurar tomcat8
Red Hat Enterprise Linux 7. Obtengo el archivo de configuración de una versión de Debian (que configuré), que es:
[...]
JAVA_OPTS='-Djava.awt.headless=true'
JAVA_OPTS='${JAVA_OPTS} -Dfile.encoding=UTF-8'
JAVA_OPTS='${JAVA_OPTS} -XX:+UseConcMarkSweepGC'
# memory
JAVA_OPTS='${JAVA_OPTS} -Xmx1024m -Xm1024m'
# logging
JAVA_OPTS='${JAVA_OPTS} -Dlogback.configurationFile=$CATALINA_BASE/conf/logback.xml'
[...]
Con Red Hat esta configuración no funciona; Recibo este error:
Error: Could not find or load main class ${JAVA_OPTS}
Caused by: java.lang.ClassNotFoundException: ${JAVA_OPTS}
Pero cuando borro ${JAVA_OPTS}
y concateno JAVA_OPTS
en una sola línea:
JAVA_OPTS='-Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -Xmx1024m -Xm1024m' -Dlogback.configurationFile=$CATALINA_BASE/conf/logback.xml'
Funciona.
También intenté reemplazar ${JAVA_OPTS}
con $JAVA_OPTS
%JAVA_OPTS%. ¿Tienes alguna idea de por qué tomcat8
no se reconoce ${JAVA_OPTS}
?
¡Gracias!
Respuesta1
Las comillas simples le dicen a Shell que no interprete los comandos/variables que contiene. Entonces no tienes ninguna ${JAVA_OPTS}
construcción de expandir/interpretar. Intente hacerlo de esta manera (entre comillas dobles):
[...]
JAVA_OPTS='-Djava.awt.headless=true'
JAVA_OPTS="${JAVA_OPTS} -Dfile.encoding=UTF-8"
JAVA_OPTS="${JAVA_OPTS} -XX:+UseConcMarkSweepGC"
# memory
JAVA_OPTS="${JAVA_OPTS} -Xmx1024m -Xm1024m"
# logging
JAVA_OPTS="${JAVA_OPTS} -Dlogback.configurationFile=$CATALINA_BASE/conf/logback.xml"
[...]
También AFAIK en versiones contemporáneas de Java deberías usar -Xms
en lugar de-Xm