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_OPTS1 行に連結すると、次のようになります。

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

関連情報