Tomcat 8 的 Red Hat 配置 - ${JAVA_OPTS} 关键字无法识别

Tomcat 8 的 Red Hat 配置 - ${JAVA_OPTS} 关键字无法识别

我正在尝试tomcat8在 Red 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}

但是当我删除${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

相关内容