115

私はApacheTomcat変数の違いを見つけようとしていましたがCATALINA_OPTSJAVA_OPTSSOでは、まだここに質問/回答が投稿されていないことに驚いています。そこで、違いを見つけて、ここで(答えを付けて)共有することを考えました。以下の答え/違いを確認してください。

注:この投稿の時点では、CentOS564ビットアーチ上でJDK6u32を使用してApacheTomcatv6.0.10を実行しています。

4

3 に答える 3

166

2つの環境変数(CATALINA_OPTSおよびJAVA_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を使用する場合がありますが、TomcatのみがCATALINA_OPTSを使用します。したがって、Tomcatのみで使用する環境変数を設定する場合は、CATALINA_OPTSを使用することをお勧めします。一方、JBossなどの他のJavaアプリケーションでも使用する環境変数を設定する場合は、次のように設定する必要があります。 JAVA_OPTSでの設定。

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

于 2012-06-27T08:38:19.463 に答える
0

@joaoのコメントで説明されているように、シャットダウン中、Tomcatは複数のVMを起動します。tomcat shutdowm中にデータを記録する場合は、JAVA_OPTSではなくCATALINA_OPTSを使用してください。良い例は、jacoco.exec中にデータを保存したい場合、JAVA_OPTSではなくCATALINA_OPTSを使用する必要がある場合です。

于 2020-10-20T17:52:05.287 に答える
0

これを追加したいと思いJAVA_OPTSますCATALINA_OPTS相互に補完的です。両方の環境変数を定義すると、両方のコンテンツが連結され、上記のGnanamで説明されているようにstartandコマンドに渡されます。run

catalina.shの元のソースを参照することもできます

于 2022-01-20T09:02:21.740 に答える