Java:无法为对象堆保留足够的空间

Java:无法为对象堆保留足够的空间,java,heap,Java,Heap,我在尝试使用1G内存运行java时遇到以下错误 C:\>java -verbose -Xmx1G 当我运行它时,我收到以下消息: 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. Pr

我在尝试使用1G内存运行java时遇到以下错误

C:\>java -verbose -Xmx1G
当我运行它时,我收到以下消息:

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.
它在最大内存设置为768M时工作正常。我正在使用Java7(Build1.7.0_15-b03)

这是我的系统信息

Total Physical Memory:     3,510 MB
Available Physical Memory: 2,393 MB
Virtual Memory: Max Size:  2,048 MB
Virtual Memory: Available: 1,965 MB
Virtual Memory: In Use:    83 MB
OS: Windows XP.

堆不仅依赖于可用RAM或物理内存。32位JVM的最大理论堆限制为4G。由于各种额外的限制,例如可用交换、内核地址空间使用、内存碎片和VM开销,实际上限制可能要低得多。

堆不仅取决于可用RAM或物理内存。32位JVM的最大理论堆限制为4G。由于各种附加限制,如可用交换、内核地址空间使用、内存碎片和虚拟机开销,实际上限制可能要低得多。

您尝试过1000M(即1G)吗?可能是Java不理解1G,如sanbhat所说,请尝试使用:-XX:MaxHeapSize=1024m运行,但如果这是问题所在,则错误消息会这样说:
unrecogned option:-xmx2G
我尝试过-XX:MaxHeapSize=1024m,我也尝试过使用-Xmx1024M。这两种情况下问题仍然存在。您是否尝试过1000M(即1G)?可能是Java不理解1G,如sanbhat所说,请尝试使用:-XX:MaxHeapSize=1024m运行,但如果这是问题所在,则错误消息会这样说:
unrecogned option:-xmx2G
我尝试过-XX:MaxHeapSize=1024m,我也尝试过使用-Xmx1024M。这两种情况下,问题仍然存在。2天前它在同一台机器上工作。我可以得到一些更多的指针,这样我就可以看到哪个参数或配置更改导致了这个问题。我也尝试过更改虚拟内存设置,并将其增加到3.5GB,然后重新启动机器并尝试。当我从Java6升级到Java7时,我遇到了这个问题。我以前配置过1GB的堆,现在使用Java7,只有降低堆的大小,它才能工作。我想新版本的Java本身使用了更多的内存。2天前它在同一台机器上工作。我可以得到一些更多的指针,这样我就可以看到哪个参数或配置更改导致了这个问题。我也尝试过更改虚拟内存设置,并将其增加到3.5GB,然后重新启动机器并尝试。当我从Java6升级到Java7时,我遇到了这个问题。我以前配置过1GB的堆,现在使用Java7,只有降低堆的大小,它才能工作。我想新版本的Java本身使用了更多的内存。