26

Windows マシンで Tomcatを設定しようとしてJAVA_OPTSいますが、複数の変数を追加するとエラーが発生し続けます。

たとえば、これは機能します:

set JAVA_OPTS="-Xms512M"

しかし、これはしません:

set JAVA_OPTS="-Xms512M -Xmx1024M"

次のエラーが発生します。

Invalid initial heap size: -Xms512M -Xmx1024M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

1 つの変数 (-Xmx も機能します) を設定できますが、複数の変数は設定できないようです。

指示されたsetenv.batファイルを使用しており、Tomcat は 7.0.35 です。

4

7 に答える 7

37

どうやら正しいフォームは""

のように

set JAVA_OPTS=-Xms512M -Xmx1024M
于 2013-02-06T14:30:24.023 に答える
26

Windows の場合、変数値にスペース (" ") が含まれている場合、実際には次のように変数名の前に引用符 (") を配置するのが正しい方法です。

set "JAVA_OPTS=-Xms512M -Xmx1024M"
于 2014-01-03T10:14:38.683 に答える
11

試す

set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M
于 2013-07-04T14:53:20.023 に答える
11

Gauravとuser2550946の回答の組み合わせが一番好きですが、さらに2つの側面を追加したいと思います:

  1. を使用せずJAVA_OPTS、代わりに を使用してくださいCATALINA_OPTS。これは、Tomcat のシャットダウンではなく、Tomcat の起動のみに使用されます。通常、Tomcat の起動時にはより多くのメモリが必要ですが、シャットダウン プロセス (スピンアップし、Tomcat にシャットダウンするように指示してから再び終了するだけです) には、特に調整されたリソースは必要ありません。実際、OS から途方もない量のメモリが利用できなくなった場合、シャットダウンは失敗することさえあります。

  2. 本番システムでは、許可されている最大メモリをすぐに要求することをお勧めします。遅かれ早かれメモリが必要になることが予想される場合、夜の午前 3 時にメモリが使用できないことを発見したくないためです。むしろ、サーバーを起動するときです。したがって、本番システムでは と を同じ値に-Xmx設定し-Xmsください。(これにより、私の側面 1 の関連性がさらに高まります)

または、1行で、これが私の推奨事項です。

set "CATALINA_OPTS=%CATALINA_OPTS% -Xms1024M -Xmx1024M"
于 2014-07-14T10:20:39.537 に答える
6

setenv.bat という名前のファイルを作成し、Tomcat の bin ディレクトリに配置することをお勧めします。このファイル (catalina.bat および catalina.sh スクリプトによって実行される) を使用すると、JAVA_OPTS 変数を使用して次の Tomcat 環境設定を変更できます。

最小および最大メモリ ヒープ サイズを設定するには、

JVM -Xms および -Xmx パラメータ

最適な制限は、Integrator ETL が実行する必要がある変換など、多くの条件によって異なります。Information Discovery トランスフォーメーションの場合、最大 1 GB が推奨されます。たとえば、最小ヒープ サイズを 128 MB に、最大ヒープ サイズを 1024 MB に設定するには、次のように使用します。

JAVA_OPTS=-Xms128m -Xmx1024m        

PermGen (Permanent Generation) メモリ空間の最大制限をデフォルトより大きいサイズに設定する必要があります。デフォルトの 64 MB は、エンタープライズ アプリケーションには十分ではありません。適切なメモリ制限はさまざまな条件によって異なりますが、ほとんどの場合、256 MB が適しています。PermGen スペースの最大値が小さすぎる場合、OutOfMemoryError: PermGen スペース エラーが発生する可能性があります。次の JVM パラメータを使用して、PermGen の上限を設定できます。

    -XX:MaxPermSize=256m

パフォーマンス上の理由から、アプリケーションをサーバー モードで実行することをお勧めします。デフォルトでは、Apache Tomcat はサーバー モードで実行されません。JVM -server パラメーターを使用して、サーバー モードを設定できます。setenv ファイルの環境変数の JAVA_OPTS 変数に JVM パラメータを設定できます。

The following is an example of a setenv.bat file:

set "JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=256m -server"
于 2015-02-28T10:01:24.397 に答える
1

これは、JVM に割り当てたいメモリ量が利用できないか、利用可能なメモリを超えて割り当てている可能性があるためです。小さいサイズを試してみると、違いがわかります。
試す:

set JAVA_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m
于 2015-09-15T10:03:23.433 に答える
0
SET JAVA_HOME=C:\Applications\java\java_8
SET PATH=%PATH%;C:\Applications\java\java_8\bin
SET JAVA_OPTIONS=-d64 -Xms128g -Xmx128g
于 2016-10-11T10:08:18.800 に答える