CATALINA_OPTS対JAVA_OPTS-違いは何ですか?


105

私は、Apache Tomcatの変数の違いを見つけるためにしようとしていた- CATALINA_OPTSJAVA_OPTSSOと疑い/答えはまだここに掲載ませんがあることを確認するために驚きました。そこで、違いを見つけた後、ここで(回答付きで)共有することを考えました。以下の答え/違いを確認してください。

注:この投稿の時点では、Apache Tomcat v6.0.10とJDK 6u32をCentOS5 64ビットarchで実行しています。

回答:


156

2つの環境変数- CATALINA_OPTSJAVA_OPTS-があり、どちらもTomcatのcatalina.sh起動スクリプトとシャットダウンスクリプトで使用されます。それらは、そのファイル内のコメントで次のように説明されています。

[JAVA_OPTS]:(オプション)「start」、「stop」、または「run」コマンドの実行時に使用されるJavaランタイムオプション

そして

[CATALINA_OPTS]:(オプション)「start」または「run」コマンドの実行時に使用されるJavaランタイムオプション

では、なぜ2つの異なる変数があるのでしょうか。そして、違いは何ですか?

最初に、EITHER変数で指定されたものはすべて、Tomcatを起動するコマンド、「start」または「run」コマンドに渡されますが、JAVA_OPTSで設定された値のみが「stop」コマンドに渡されます。これは、Tomcatが実際に実行する方法には何の違いもありません。実行の開始ではなく、実行の終了にのみ影響するためです。

2番目の違いはより微妙です。他のアプリケーションもJAVA_OPTSを使用できますが、CATALINA_OPTSを使用するのはTomcatのみです。したがって、Tomcatのみが使用する環境変数を設定する場合は、CATALINA_OPTSを使用することをお勧めします。一方、JBossなどの他のJavaアプリケーションでも使用されるように環境変数を設定する場合は、 JAVA_OPTSの設定。

出典: CATALINA_OPTS v JAVA_OPTS-違いは何ですか?


11
それらを「Tomcatの起動に何か必要ですか」または「すべてのJVMに何かが必要ですか」と考えることも役立ちます。分散環境でJMXモニタリングをセットアップしようとしていて、ファイアウォールの背後にいるとします。起動引数としてDjava.rmi.serverをセットアップするには、2つのRMIポートが必要になります。JAVA_OPTとしてこれを行うと、シャットダウンは、JMXポートでリッスンしようとする新しいJVMを起動します。tomcatはすでにリッスンしているため、JVMはそれを取得できません。欲しい?
ジョアンフィゲイレド2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.