我正在尝试运行某个具有超过1024M堆空间的java程序。尽管我有 4GB RAM 和 32 位操作系统,但它说最大是 1024M。下面是我尝试用来启动程序的批处理代码:
@echo off
java -Xmx2048M -Xms2048M -jar program.jar
有人可以解释一下为什么我收到 JVM“无法保留足够的空间”错误吗?
最佳答案
您使用的是 Windows,单个 32 位程序可以拥有的最大地址空间是 2GB。 现在,由于进程和系统需要其中一些用于内务处理(例如 .dll),因此您不能将所有这些 2GB 用于 java 堆。所以尝试少一点,例如1.5 GB。
你可以通过启动开关让32位程序获得3GB的地址空间,参见here ,如果您确实需要更多堆空间,这可以作为切换到 64 位操作系统的替代方案。
关于java - 为什么我收到 JVM 最大堆空间错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488161/