JDK各個版本在不同作業系統中支援的最大記憶體是不一樣的,但是可以通過以下方法來進行測試。
c:>java -XmxXXXm(g) -version
其中,XXX為最大記憶體數值, m(g)是記憶體的計量單位,如果命令能夠正確顯示出jdk的版本等資訊,說明當前jdk支援測試的最大記憶體
數量,否則說明測試的記憶體超出了jdk支援的最大值。
例如:我的系統是win7 64位
Java代碼 C:\Users\ThinkPad>java -Xmx16g -version java version "1.6.0_30" Java(TM) SE Runtime Environment (build 1.6.0_30-b12) Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode) Java代碼 C:\Users\ThinkPad>java -Xmx16g -version java version "1.6.0_30" Java(TM) SE Runtime Environment (build 1.6.0_30-b12) Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
C:\Users\ThinkPad>java -Xmx16g -versionjava version "1.6.0_30"Java(TM) SE Runtime Environment (build 1.6.0_30-b12)Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
支援不了的時候就會報錯了
Java代碼 C:\Users\ThinkPad>java -Xmx16000g -version Error occurred during initialization of VM Could not reserve enough space
for object heap Could not create the Java virtual machine. Java代碼 C:\Users\ThinkPad>java -Xmx16000g -version Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
C:\Users\ThinkPad>java -Xmx16000g -versionError occurred during initialization of VMCould not reserve enough space for object heapCould not create the Java virtual machine.
一般在32位機器上,該最大值位於1.5G-2G之間,在64位機器上面應該沒啥限制,經測試寫16G也能正常得出版本資訊
轉載自:黑色頭髮:http://heisetoufa.iteye.com/