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

Kem*_*nca 20 java jvm minecraft

我在32位Windows和4 GB RAM上运行Java7,但是:

java -Xmx4G -Xms4G -jar Minecraft.jar 
java -Xmx3G -Xms3G -jar Minecraft.jar 
java -Xmx2G -Xms2G -jar Minecraft.jar
Run Code Online (Sandbox Code Playgroud)

......仍然无效.错误:

初始化VM时 出错无法
为对象堆保留足够的空间
错误:无法创建Java虚拟机.
错误:发生了致命异常.程序将会退出.

java -Xmx1G -Xms1G -jar Minecraft.jar工作中.为什么?

小智 53

进入Start→交通Control Panel→交通System→交通Advanced system settings→交通advanced(tab)→交通Environment Variables→交通System Variables→交通New:

Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M
Run Code Online (Sandbox Code Playgroud)

  • 避免配置这么多工具的好方法.谢谢.我试图在VM实例上配置标志,但是我确实做错了.使用系统变量要好得多,只有一次.谢谢. (2认同)
  • 这就像一个魅力.我在IntelliJ中构建,但不得不重新启动程序 (2认同)

rah*_*ver 10

如果你通过java上的这个 IBM链接,它说在32位窗口上推荐的堆大小是1.5 GB,最大堆大小是1.8 GB.所以你的jvm不会被初始化为-Xmx2G及以上.

此外,如果你通过这个 SO答案,很明显DLL绑定是内存预留更改的问题,这不是一件轻而易举的事.因此,建议您使用64位Windows和64位JVM.虽然它会占用更多的RAM,但你将拥有更多连续的虚拟地址空间.


小智 7

这对我来说很容易解决.

  1. 你必须确保你的系统有正确的java,如32位或64位.
  2. 如果你已经安装了正确的软件,它仍然比goto发生

    control panel→交通system→交通advanced system settings为Windows 8或

    control panel→交通system and security→交通system→交通advanced system settings为Windows 10.

  3. 您必须转到{高级选项卡},然后单击{环境变量}.
  4. 你将点击下面的{新} <system variables>
  5. 你将创建一个新的变量.变量名称:_JAVA_OPTIONS 变量值:-Xmx512M

至少这对我有用.


小智 6

我有这个问题.我通过下载64x的Java解决了这个问题.这是链接:http://javadl.sun.com/webapps/download/AutoDL?BundleId=87443


Lok*_*esh 2

4GB RAM 并不意味着您可以将其全部用于 java 进程。系统进程需要大量 RAM。不要超过2GB,否则会有些麻烦。

在启动 jvm 之前,只需检查有多少 RAM 可用,然后相应地设置内存。