Tomcat 8のRed Hat設定 - ${JAVA_OPTS}キーワードは認識されません。

Tomcat 8のRed Hat設定 - ${JAVA_OPTS}キーワードは認識されません。

tomcat8Red Hat Enterprise Linux 7でこれを設定しようとしています。私は(私が設定した)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}

しかし、1行から削除して${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

おすすめ記事