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