目前我們遇到了一個問題,我們的java應用程序可以使用JRE6平穩運行,但是對於JRE7,它有時會報告「無法創建Java虛擬機」並且無法啓動程序。我們在啓動命令行中有「-Xmx1024m」選項。最大堆大小從java 6減少到java 7?
在谷歌搜索後,人們建議檢查可以在PC中請求的最大堆大小。然後我嘗試了下面的。
爲JRE6,
C:\Users\joey>java -Xmx1214m -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode)
C:\Users\joey>java -Xmx1215m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
爲JRE7,
D:\Program Files\Java\jre7\bin>java.exe -Xmx930m -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
D:\Program Files\Java\jre7\bin>java.exe -Xmx931m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
當我關閉電腦和釋放內存最流程,以2.5 GB,用於JRE7,它將與1094米成功,如下圖所示。
D:\Program Files\Java\jre7\bin>java.exe -Xmx1094m -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)
D:\Program Files\Java\jre7\bin>java.exe -Xmx1095m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
看來,最大堆大小JVM可以請求與系統中可用的內存大小相關的,沒有人知道確切的關係?
有什麼方法可以在創建JVM時啓用JRE的跟蹤日誌嗎?
謝謝!
問候, 喬伊