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

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

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

관련 정보