CATALINA_OPTS和JAVA_OPTS-有什么区别?


105

我试图找出的Apache Tomcat变量之间的差异- CATALINA_OPTSJAVA_OPTSSO和惊讶地看到,没有问题/答案张贴在这里呢。因此,我想在找出差异之后在这里分享(有答案)。检查下面的答案/差异。

注意:在发布本文时,我们正在CentOS5 64位架构上运行带有JDK 6u32的Apache Tomcat v6.0.10。

Answers:


155

有两个环境变量- CATALINA_OPTSJAVA_OPTS-都在 Tomcat catalina.sh启动和关闭脚本中使用。它们在该文件中的注释中描述为:

[JAVA_OPTS] :(可选)执行“开始”,“停止”或“运行”命令时使用的Java运行时选项

[CATALINA_OPTS] :(可选)执行“启动”或“运行”命令时使用的Java运行时选项

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

首先,将在EITHER变量中指定的所有内容都相同地传递给启动Tomcat的命令-“ start”或“ run”命令-但只有JAVA_OPTS中设置的值才传递给“ stop”命令。这可能与Tomcat的实际运行方式没有任何区别,因为它仅影响运行的结束而不影响开始。

第二个差异更加微妙。其他应用程序也可能使用JAVA_OPTS,但只有Tomcat将使用CATALINA_OPTS。因此,如果设置环境变量仅由Tomcat使用,则最好建议使用CATALINA_OPTS,而如果设置环境变量也要由其他Java应用程序(例如JBoss)使用,则应放置您在JAVA_OPTS中的设置。

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


11
将它们认为是“我需要启动tomcat的东西”还是“每个JVM需要我的东西”也很有用。假设我们正在尝试在分布式环境上设置JMX监视,并且位于防火墙后面-我们将需要两个RMI端口,从而将Djava.rmi.server设置为启动 arg。我们是否会像JAVA_OPT那样执行此操作,那么关闭会触发一个新的JVM,该JVM尝试监听JMX端口,无法获取它,因为tomcat已经监听了它,并且JVM会因它已被使用而出错,这不是我们所希望的。想要吗?
Joao Figueiredo 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.