Tomcat 8 的 Red Hat 設定 - ${JAVA_OPTS} 關鍵字無法辨識

Tomcat 8 的 Red Hat 設定 - ${JAVA_OPTS} 關鍵字無法辨識

我正在嘗試tomcat8在 Red 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

單引號告訴 shell 不要解釋裡面的指令/變數。所以你沒有擴展/解釋${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

相關內容