Tomcat 8에 대한 Red Hat 구성 - ${JAVA_OPTS} 키워드가 인식되지 않습니다.

Tomcat 8에 대한 Red Hat 구성 - ${JAVA_OPTS} 키워드가 인식되지 않습니다.

tomcat8Red Hat Enterprise Linux 7에서 이를 구성하려고 합니다 . 나는 (내가 설정한) 데비안 버전에서 구성 파일을 얻었습니다.


[...]

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"

[...]

또한 내가 아는 한 최신 버전의 Java를 -Xms대신 사용해야 합니다.-Xm

관련 정보