SO のApache Tomcat変数-CATALINA_OPTS
とJava_OPTS
の違いを見つけようとしていて、ここに質問/回答がまだ投稿されていないことに驚きました。そこで、違いを見つけた後、ここで(答えを付けて)共有することを考えました。以下の回答/違いを確認してください。
注:この投稿の時点で、CentOS5 64ビットArchでApache Tomcat v6.0.10とJDK 6u32を実行しています。
CATALINA_OPTS
とJava_OPTS
の2つの環境変数があり、どちらもTomcatのcatalina.sh起動およびシャットダウンスクリプトで使用されます。それらは、そのファイル内のコメントで次のように説明されています。
[Java_OPTS]:(オプション)「start」、「stop」、または「run」コマンドの実行時に使用されるJavaランタイムオプション
そして
[CATALINA_OPTS]:(オプション)Java実行時オプションは、「start」または「run」コマンドの実行時に使用されます
では、なぜ2つの異なる変数があるのですか?そして違いは何ですか?
まず、EITHER変数で指定されたものはすべて、Tomcatを起動するコマンド(「start」または「run」コマンド)に同じように渡されますが、Java_OPTSに設定された値のみが「stop」コマンドに渡されます。 Tomcatは、実行ではなく、実行の最後にのみ影響を与えるため、実際のTomcatの実行方法にはおそらく違いはありません。
2番目の違いはより微妙です。他のアプリケーションでもJava_OPTSを使用できますが、TomcatのみがCATALINA_OPTSを使用します。そのため、Tomcatのみが使用する環境変数を設定する場合は、CATALINA_OPTSを使用することをお勧めしますが、環境変数を他のJavaアプリケーションでも使用するように設定する場合は、 JBossにより、設定をJava_OPTSに配置する必要があります。