When i create a new project in "Eclipse" IDE.Suddenly it shows an alert message "Out of memory error".I cannot identify the reason. If any one know the reason please tell me.
-
Always? The same kind of project? How big is your workspace? Lots of projects? – djna Jul 25 '11 at 12:41
-
how much ram do you have? You should have at least 4GB of RAM to make Eclipse runs smoothly. – ysrb Jul 25 '11 at 12:42
-
2Having even 400GB of RAM wouldn't help if the heap setting was too small. – djna Jul 25 '11 at 13:05
7 Answers
Try to start eclipse with follow paramenters:
eclipse.exe -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m
Or justify these parameters for your requirements

- 2,198
- 16
- 13
-
3See http://stackoverflow.com/a/101995/632951 for explanation regarding each parameter. – Pacerier May 10 '14 at 08:16
-
PermSize and MaxPermSize support was removed in Eclipse 8.0. – Dmitriy Vinokurov Jun 17 '19 at 10:51
- Go to your Eclipse setup folder
If you are running Eclipse on Mac OS X then
Right click on
eclipse.app
iconClick on
Show Package Contents
Open
eclipse.ini
fileChange below parameters
-Xms512m -Xmx3000m (Hoping your developer box has >4GB of memory)
Add below parameters
-XX:PermSize=256m -XX:MaxPermSize=512m

- 5,593
- 38
- 51
-
2It seems PermSize and MaxPermSize are not supported in later versions (8.0+). `Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0` – A. B Apr 04 '18 at 21:33
The most obvious explanation is that you are truly out of memory. In which case starting Eclipse with a bigger heap should help
-vmargs -Xmx256M
varying the 256M to see what works for you.
I would not expect to see this problem if you have just a few simple projects. If you are using additional plugins then conceivably the amount of heap you need may need to be increased.

- 54,992
- 14
- 74
- 117
Not sure if relevant to your problem, but I just had a similar problem with a Swing project using OpenJDK 7.
After several cycles of starting (the Run
button) and closing ('X'
/ Alt+F4
) my application, I got this error in the console:
Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:691)
at sun.awt.AWTAutoShutdown.activateBlockerThread(AWTAutoShutdown.java:334)
at sun.awt.AWTAutoShutdown.notifyPeerMapUpdated(AWTAutoShutdown.java:215)
at sun.awt.AWTAutoShutdown.registerPeer(AWTAutoShutdown.java:348)
at sun.awt.SunToolkit.targetCreatedPeer(SunToolkit.java:313)
at sun.awt.X11.XToolkit.createFrame(XToolkit.java:410)
at java.awt.Frame.addNotify(Frame.java:477)
at java.awt.Window.show(Window.java:1031)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at tool.BAT.main(BAT.java:11)
And sometimes, I got another sort of error:
Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create new native thread
and then, if I tried to run it once more, Java crashed:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000000000000, pid=30388, tid=139776854689536
#
# JRE version: 7.0_07-b30
# Java VM: OpenJDK 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C 0x0000000000000000
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/mcmlxxxvi/workspace/bat/hs_err_pid30388.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# http://icedtea.classpath.org/bugzilla
#
top
revealed the cause of the problem (notice virtual memory usage):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30619 mcmlxxxv 20 0 3271m 390m 45m S 2.0 13.0 0:38.88 java
30667 mcmlxxxv 20 0 2172m 35m 12m S 0.3 1.2 0:01.00 java
30688 mcmlxxxv 20 0 2172m 35m 12m S 0.3 1.2 0:00.96 java
30710 mcmlxxxv 20 0 2172m 35m 12m S 0.0 1.2 0:00.97 java
These were all instances of my application, which had not been closed. Still not sure why so much virtual memory was allocated per instance - probably there's some option for that. (I have 3GiB of physical memory, by the way).
Here's my main() method:
public static void main(String[] args) {
JFrame frame = new JFrame();
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setVisible(true);
}
I saw the commented line in a tutorial and specifically disabled it to see what would happen. What happened was that that it defaulted to HIDE_ON_CLOSE
, which did not close and dispose of the frame.
Setting setDefaultCloseOperation
to EXIT_ON_CLOSE was the solution for me. Interested to see input from more knowledgeable people on this, though.

- 1,358
- 1
- 11
- 21
-
Not sure why this was downvoted. I had the same problem as OP, having already increased memory in the startup parameters. Discovered numerous java processes open after opening/closing a Swing window, tried this suggestion, and it closes properly now. – Neil Jun 18 '14 at 13:37
- Open Your eclipse.ini file
- XXMaxPermSize will be 256m.
- Change the value to 512m.
- Restart your eclipse.
- Now you will not see any memory issues in Eclipse.
In Brief See below:
Before
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
After:
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m

- 1
- 1

- 21
- 1
For everyone (like me) who ends up at the bottom without fixing it...
My Eclipse ran out of memeory every time I tried to save a specific file.
Eclipse has a bug where it is unable to handle formatting a comment between a method type and a method name, like the code given below. The fix is to move the comment up or down
public String
// Never put a comment here, Eclipse will run out of memory
getName() {
return "name";
}

- 127
- 4
You have to use setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);