在Eclipse IDE中运行我的Java代码时,出现了错误:
线程中的异常" D3D屏幕更新器"线程中的异常 的" AWT-EventQueue的-0" java.lang.OutOfMemoryError:Java堆空间
我搜索了此错误并尝试了here和here所述的解决方案,但它们无效。
我在 eclipse.ini :
中更改了这些参数- launcher.XXMaxPermSize
512M
-Xms40m
-Xmx512m
为:
- launcher.XXMaxPermSize
1024M
-Xms512m
-Xmx2048m
我在运行配置中更改了此参数:
但我仍然得到同样的错误。我错过了什么吗?
答案 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