Java堆大小:设置太大时出错
我有一个基本上需要大量内存的程序。然而,由于某种原因,当我试图将最大堆空间设置为1.5GB以上时,java给了我一个错误。就是跑Java堆大小:设置太大时出错,java,heap-memory,Java,Heap Memory,我有一个基本上需要大量内存的程序。然而,由于某种原因,当我试图将最大堆空间设置为1.5GB以上时,java给了我一个错误。就是跑 java -Xmx1582m [my program] 没关系,但是 java -Xmx1583m [my program] 给出了错误 Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Jav
java -Xmx1582m [my program]
没关系,但是
java -Xmx1583m [my program]
给出了错误
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
我在Windows命令行和Eclipse中都遇到了相同的错误
以下是我的系统配置:
Windows 7(64位)
英特尔酷睿2四处理器
已安装RAM:8.00 GB
Java版本1.6.0
奇怪的是,我只能设置1.5GB的内存,即使我运行的是带有8GB内存的64位操作系统。有办法解决这个问题吗?可能的情况是,虽然您的操作系统是64位的,但JVM不是。打开一个命令行并键入
java-version
将为您提供详细的版本信息,这将指示您安装的JVM是32位还是64位版本
64位JVM应该不会有更高内存限制的问题。用于堆空间
-XX:MaxPermSize=64m
您使用的是JRE for Windows还是Windows x64?类似:我知道您说过您有8GB的RAM,但错误文本与“您使用的堆比可用内存大”错误匹配。我认为这可能是JVM的局限性,但我仍在研究它。我的java版本说:java版本“1.6.0_21”java(TM)SE运行时环境(build 1.6.0_21-b07)java HotSpot(TM)客户端VM(build 17.0-b17,混合模式,共享)我不知道这是32位还是64位。查看JVM信息。你能详细说明一下吗?运行java-XX:MaxPermSize=64m-Xmx1583m[my program]仍然会给出相同的错误。-1
-XX:MaxPermSize
用于永久生成。它的大小与堆的其他部分分开计算。啊,似乎安装64位JDK是可行的!问题解决了!谢谢:)很高兴听到这个消息。另外,我还没有意识到32位JVM没有提到它是32位的版本(64位版本实际上说它是64位的),很抱歉!