3

アプリケーションを実行しているときに JVM の問題が発生し、単に Java コマンドを以下に示します。

C:\Users\optitest>I:\j2sdk\bin\java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

C:\Users\optitest>I:\j2sdk\bin\java -Xms4g -version
Error occurred during initialization of VM
Incompatible minimum and maximum heap sizes specified

Xms が 128M に設定されていても機能しません:

C:\Users\optitest>I:\j2sdk\bin\java -Xms128m -version
Error occurred during initialization of VM
Incompatible minimum and maximum heap sizes specified

Xms が 64M 以下に設定されている場合にのみ機能します。

C:\Users\optitest>I:\j2sdk\bin\java -Xms64m -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

興味深いことに、Xmx を指定すると、うまく機能します。

C:\Users\optitest>I:\j2sdk\bin\java -Xms4g -Xmx4g-version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

C:\Users\optitest>I:\j2sdk\bin\java -Xms4g -Xmx8g-version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

さらに興味深いのは、上記のコマンドはすべて、同じ OS (Windows Server 2008 R2 Enterprise SP1) と同じ jdk バージョンの別のマシンでうまく動作することです。物理メモリは16GB。

何か案が?

4

3 に答える 3

0

これと同じ問題があります。現在もデバッグ中ですが、デフォルトMaxHeapSizeが TOTALRAM/4 または (16GB/4 = 4GB = 2^32) に設定されていることに関係があるようです。

(uint32) 2^32 = 0

から次の出力が得られます-XX:PrintFlagsFinal

uintx MaxHeapSize                              := 0               {product}

また、 の出力で-XX:+PrintCommandLineFlags4G 値が確認されます。

-XX:InitialHeapSize=268428160 -XX:MaxHeapSize=4294850560 -XX:+PrintCommandLineFlags -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
于 2016-03-22T01:05:33.920 に答える