![](/img/trans.png)
[英]"insufficient memory for the Java Runtime Environment " message in eclipse
[英]Insufficient memory for the Java Runtime Environment in Eclipse
There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap
# An error report file with more information is saved as:
# C:\jboss-eap-services-6.4.4\bin\hs_err_pid6632.log
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m;
support was removed in 8.0
鉴于上述问题,我正在尝试启动jboss服务器。 我尝试了一些步骤,但找不到正确的解决方案。
您可以尝试增加Eclipse的内存,可以在le eclipse.ini文件(靠近eclipse可执行文件)中或在命令行参数中执行此操作:-Xms256m -Xmx16348m
请使用以下设置为永久位置分配内存-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit
正是JBoss(不是Eclipse)崩溃了。 因此,增加Eclipse的内存是徒劳的! (实际上,这可能会使情况变得更糟。)
要注意的第二件事是,本机分配请求中的空间不足,因此增加常规堆的大小将无济于事。 如下所示的选项可能无济于事! (实际上,它们可能会使情况变得更糟。)
-Xms1024m -Xmx1024m -XX:-UseGCOverheadLimit
要注意的第三件事是您的JVM没有PermGen空间,因此可以通过以下方式摆弄PermGen的大小
-XX:PermSize=512m -XX:MaxPermSize=512m
是徒劳的。 (这就是Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
。)
那么真正的问题是什么?
好吧,您正在运行64位JRE,因此这不是体系结构问题。 (在32位JRE上,JVM的地址空间具有硬限制...)
实际上,这是JVM本身之外的问题。 基本上,JVM要求操作系统提供更多的内存,并且操作系统说“不!”。 我可以提供两种可能的解释:
可能存在每个进程的“ ulimit”,这限制了进程的大小。 您的JVM请求超出了该限制。
OS可能已用完虚拟地址空间或可映射的虚拟内存。 前者不太可能。 后者通常是由于您的操作系统没有足够的RAM和/或交换空间而出现的。 如果您在虚拟机上运行的内存不足,那么... ...也可能发生这种情况。
现在看来,这可能是在JVM尝试增长Java堆时发生的。 但是无论哪种方式,问题都不在于Java堆的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.