Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用-Xmx>;运行java;966米_Java_Windows_Heap - Fatal编程技术网

无法使用-Xmx>;运行java;966米

无法使用-Xmx>;运行java;966米,java,windows,heap,Java,Windows,Heap,如果将Xmx设置为967或更高的值,则无法运行java C:\Documents and Settings\salesforce>java-Xmx967m-版本错误 在VM的初始化过程中发生,无法保留足够的空间 对于对象堆错误:无法创建Java虚拟机。 错误:发生致命异常。程序将退出 如果我运行相同的命令,但将Xmx设置为966,它将正确运行: C:\Documents and Settings\salesforce>java-Xmx966m-VersionJava 版本“1.7.0_25”Ja

如果将Xmx设置为967或更高的值,则无法运行java

C:\Documents and Settings\salesforce>java-Xmx967m-版本错误 在VM的初始化过程中发生,无法保留足够的空间 对于对象堆错误:无法创建Java虚拟机。 错误:发生致命异常。程序将退出

如果我运行相同的命令,但将Xmx设置为966,它将正确运行:

C:\Documents and Settings\salesforce>java-Xmx966m-VersionJava 版本“1.7.0_25”Java(TM)SE运行时环境(构建 1.7.0_25-b17)Java热点(TM)客户端虚拟机(构建23.25-b01,混合模式)

在执行命令之前,有3GB的ram可用(任务管理器)

环境:

  • Java 1.7.0_25 32位
  • Windows server 2003 SP2,4GB RAM

谢谢

JVM对内部的使用不仅仅是堆大小。根据配置方式(perm空间、线程堆栈大小、线程数等),这可能很容易占到几百MB。我相信,您使用的是32位jvm,因此windows 32位上的最大进程大小应该是2GB。我相信有办法将其扩展到3GB(例如对此有一些解释);但我已经有一段时间没有处于那种环境中了。因此,您的运行可能已接近极限。

能否运行
Java-Xmx966m MaxMemory
这将报告基于默认堆分配的“最大内存”。它抱怨:找不到MaxMemory类@FredericHenrisorry代码是这个问题这是输出:C:\Documents and Settings\salesforce\Escritorio>java-Xmx966m MaxMemory总内存:16252928(15.5 MiB)最大内存:979173376(933.8125 MiB)可用内存:15866312(15.131294250488281 MiB)结果基于966最大堆大小,所以它们真的有用吗@弗雷德里克·亨利感谢你的回答,但我相信肯定还有别的原因。将max heap设置为967肯定不会达到2GB进程限制。如果它告诉您内存不足,通常不是在撒谎。由于某种原因,你认为自己有足够的记忆力可能是错误的。您似乎已经将范围缩小到了仍然可以创建堆的确切数量。堆!=分配的内存。Heap是程序可用的位,但是jvm也在这个区域之外分配内存。另外,如果您正在从java加载任何可能分配堆外内存的本机内容。所以,很明显有些东西不合适。如果没有更多信息,就无法说出什么。你需要什么信息??