CATALINA_OPTS 与 JAVA_OPTS - 有什么区别?

新手上路,请多包涵

我试图找出 Apache Tomcat 变量之间的区别 - CATALINA_OPTSJAVA_OPTSSO 中,惊讶地发现这里还没有发布问题/答案。所以我在找出区别后想到在这里分享它(有答案)。检查下面的答案/差异。

注意: 在发布这篇文章时,我们在 CentOS5 64 位架构上运行 Apache Tomcat v6.0.10 和 JDK 6u32。

原文由 Gnanam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 987
2 个回答

有两个环境变量 - CATALINA_OPTSJAVA_OPTS 都用于 catalina.sh Tomcat 的启动和关闭脚本。

CATALINA_OPTS在 catalina.sh 中评论

 #   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 中评论

 #   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.

那么为什么会有两个不同的变量呢?有什么区别?

  1. 首先,EITHER 变量中指定的任何内容都相同地传递给启动 Tomcat 的命令 - startrun 命令 - 但仅在 JAVA_OPTS -a 中设置的值被传递给 stop 命令。这可能对 Tomcat 在实践中的运行方式没有任何影响,因为它只影响运行的结束,而不影响开始。

  2. 第二个区别更微妙。其他应用程序也可以使用 JAVA_OPTS ,但只有 Tomcat 会使用 CATALINA_OPTS 。因此,如果您设置的环境变量仅供 Tomcat 使用,则最好建议您使用 CATALINA_OPTS ,而如果您设置的环境变量也供其他 Java 应用程序使用,例如通过 JBoss,您应该将您的设置放在 JAVA_OPTS 中。

资料来源: CATALINA_OPTS v JAVA_OPTS - 有什么区别?

原文由 Gnanam 发布,翻译遵循 CC BY-SA 4.0 许可协议

我想补充一点 JAVA_OPTSCATALINA_OPTS相互补充 的:如果你定义了两个环境变量, 两者的内容将被连接 并传递给 startrun 命令 - 正如上面的 Gnanam 所解释的。

也可以参考 catalina.sh的原始来源

原文由 Peter Wippermann 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题