Red Hat Enterprise Linux 7에서 구성하려고 합니다 tomcat8
. (제가 설정한) Debian 버전에서 구성 파일을 가져옵니다. 이는 다음과 같습니다.
[...]
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'
[...]
Red Hat에서는 이 구성이 작동하지 않습니다. 다음 오류가 발생합니다.
Error: Could not find or load main class ${JAVA_OPTS}
Caused by: java.lang.ClassNotFoundException: ${JAVA_OPTS}
그러나 내가 지우고 한 줄에 ${JAVA_OPTS}
연결 하면 다음과 같습니다.JAVA_OPTS
JAVA_OPTS='-Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -Xmx1024m -Xm1024m' -Dlogback.configurationFile=$CATALINA_BASE/conf/logback.xml'
효과가있다.
또한 %JAVA_OPTS% ${JAVA_OPTS}
로 바꾸려고 했습니다 . 가 왜 인식되지 않는지 $JAVA_OPTS
아시나요 ?tomcat8
${JAVA_OPTS}
감사해요!
답변1
작은따옴표는 쉘이 내부의 명령/변수를 해석하지 않도록 지시합니다. 따라서 확장/해석 구성이 없습니다 ${JAVA_OPTS}
. 다음과 같은 방법으로 만들어 보십시오(큰따옴표 사용).
[...]
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"
[...]
-Xms
또한 최신 버전의 Java에서는 AFAIK를 대신 사용해야 합니다 .-Xm