无法解决" Java堆空间"日食中的错误

时间:2014-11-25 16:43:13

标签: java eclipse out-of-memory

在Eclipse IDE中运行我的Java代码时,出现了错误:

  

线程中的异常" D3D屏幕更新器"线程中的异常   的" AWT-EventQueue的-0" java.lang.OutOfMemoryError:Java堆空间

我搜索了此错误并尝试了herehere所述的解决方案,但它们无效。

我在 eclipse.ini

中更改了这些参数
  

- launcher.XXMaxPermSize

     

512M

     

-Xms40m

     

-Xmx512m

为:

  

- launcher.XXMaxPermSize

     

1024M

     

-Xms512m

     

-Xmx2048m

编辑:

我在运行配置中更改了此参数:

enter image description here

但我仍然得到同样的错误。我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

  

eclipse.ini中的内存设置仅分配给Eclipse IDE,   不是你想要运行的程序。一个非常常见的错误是更新了   eclipse.ini中的堆大小,并期望它解决上面的内存不足问题   问题。   

http://www.mkyong.com/eclipse/eclipse-java-lang-outofmemoryerror-java-heap-space/

答案 1 :(得分:1)

" vmargs"选项?如果设置最小/最大堆,则可能需要在主进程而不是启动器上执行此操作。

有关设置VM选项的信息,请参阅Eclipse FAQ item

那个发射器PermSize opt有点荒谬。除非您知道它是启动Om的启动程序PermSize,否则保持默认值为256m。

[编辑]

正如其他人指出的那样,如果在从 Eclipse运行Java程序时发生这种情况,你可以在"运行配置"中调整这些设置。对于该程序,而不是Eclipse.ini。

另外,请记住,您可以随心所欲地调整VM选项,但如果程序想要在OOM之前占用盒子上的所有资源,那么任何调整都不能减轻这一点。

答案 2 :(得分:0)

假设你有4GB或更多内存,请在 eclipse.ini 中尝试这样的事情(注意大写/小写字母" m"):

--launcher.XXMaxPermSize
1024M
--launcher.XXMaxPermSize
1024m
-vmargs
-Xms512m
-Xmx2048m

答案 3 :(得分:0)

如果我们使用的是Windows,请尝试:

尝试使用所需的堆大小设置名为_JAVA_OPTIONS的Windows系统环境变量。 Java应该能够找到它并采取相应的行动

以下设置适用于我: -Xms512m -Xmx1024m -XX:MaxPermSize = 512m