有两个环境变量 -CATALINA_OPTS
and JAVA_OPTS
- 两者均用于catalina.sh
Tomcat 的启动和关闭脚本。
CATALINA_OPTS: 在 catalina.sh 内评论 https://github.com/apache/tomcat/blob/main/bin/catalina.sh#L47:
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.
JAVA_OPTS: 在 catalina.sh 内评论 https://github.com/apache/tomcat/blob/main/bin/catalina.sh#L65:
# JAVA_OPTS (Optional) Java runtime options used when any command
# is executed.
# Include here and not in CATALINA_OPTS all options, that
# should be used by Tomcat and also by the stop process,
# the version command etc.
# Most options should go into CATALINA_OPTS.
那么为什么会有两个不同的变量呢?有什么区别呢?
-
首先,在任一变量中指定的任何内容都会以相同的方式传递给启动 Tomcat 的命令 -start
or run
命令 - 但仅限于设置的值JAVA_OPTS
被传递到stop
命令。这可能对 Tomcat 在实践中的运行方式没有任何影响,因为它只影响运行的结束,而不是开始。
-
第二个区别更为微妙。其他应用程序也可以使用JAVA_OPTS
,但只有Tomcat会使用CATALINA_OPTS
。因此,如果您设置的环境变量仅供 Tomcat 使用,则最好使用CATALINA_OPTS
,而如果您要设置其他 java 应用程序(例如 JBoss)使用的环境变量,则应该将您的设置放在JAVA_OPTS
.
Source: CATALINA_OPTS 与 JAVA_OPTS - 有什么区别? http://www.wellho.net/mouth/2163_CATALINA-OPTS-v-JAVA-OPTS-What-is-the-difference-.html