提问者:小点点

eclipse中的Java运行时环境内存不足消息


当我在Eclipse中运行我的Java代码时,我收到以下消息:

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (malloc) failed to allocate 4088 bytes for AllocateHeap
An error report file with more information is saved as:
E:\Eclipse_Workspace\BTest\hs_err_pid1888.log

我的电脑里有4GB的内存。我也将JRE从1.7更改为1.8。但这个问题似乎尚未解决。我使用带有i3处理器的Win 8系统,在我的C驱动器中有大约20gb的可用磁盘空间。

Eclipse 版本:Eclipse Juno Service Release 2

我在启动Eclipse时也收到了这条消息。我已附上错误消息屏幕截图。

是什么导致了这个问题?

“eclipse.ini”文件中的内存参数:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m

解决方案:重新安装eclipse解决了这个问题。


共3个答案

匿名用户

上面的信息意味着你在你的电脑上运行了太多的程序,已经没有足够的内存来再运行一个了。这不是Java的问题,也没有任何Java选项能够改变这一点。

使用Windows的任务管理器来查看4GB内存中实际有多少可用空间。我猜在某个地方,你有一个程序吃掉了所有的内存。找到它,杀了它。

编辑您需要了解有两种类型的“内存溢出”错误。

第一个是OutOfMemoryException,当Java代码正在运行并且Java堆不够大时会出现这个异常。这意味着Java代码向Java运行时请求内存。您可以使用< code>-Xmx修复这些问题...

另一个错误是 Java 运行时内存不足。这与 Java 堆完全无关。当 Java 要求操作系统提供更多内存并且操作系统说:“对不起,我没有内存”时,这是一个错误。

要修复后者,请关闭应用程序或重新启动(以清理内存碎片)。

匿名用户

即使在运行简单命令时,如何诊断此错误:

java -version
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create GC thread. Out of system resources.
# An error report file with more information is saved as:
# /home2/ericlesc/code/java/c2/hs_err_pid23944.log

检查您的可用内存量:

free -m
             total       used       free     shared    buffers     cached
Mem:         28119      26643       1475        189       2391      15368
-/+ buffers/cache:       8884      19235
Swap:         5117         34       5083

检查最大用户进程数,确保您没有超过限制:

ulimit -a

ps -ef | wc -l

对我来说,之所以会发生这种情况,是因为PHP在bluehost上消耗了太多分配给我的内存,而我能够在不重新启动PHP或服务器的情况下修复它的方法(我不能)是取public_html目录并重命名它。给它一分钟时间让PHP看到更改,然后重新命名它。

php引擎本身的一个bug。我发现了一个聪明的方法来快速启动PHP引擎。

(2016年2月更新)(我对此的赞成票激增,因为Bluehost实例PHP引擎保留了所有内存,而没有为JVM留下任何内存。在他们的辩护中,PHP正在演变成一个邪恶的鲁布戈德堡机器。Bluehost作为一项服务正在下降。

匿名用户

如果您在ec2上并且想要进行mvn构建,那么使用-T选项,该选项告诉maven在进行构建时使用线程数

例如:mvn-T 10干净包