Out of memory error in eclipse.why?

前端 未结 5 1462
花落未央
花落未央 2020-12-24 12:46

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 t

相关标签:
5条回答
  • 2020-12-24 12:53

    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.

    0 讨论(0)
  • 2020-12-24 12:54

    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

    0 讨论(0)
  • 2020-12-24 12:56
    1. Go to your Eclipse setup folder
    2. If you are running Eclipse on Mac OS X then

      Right click on eclipse.app icon

      Click on Show Package Contents

    3. Open eclipse.ini file

    4. Change below parameters

      -Xms512m
      -Xmx3000m (Hoping your developer box has >4GB of memory)
      
    5. Add below parameters

      -XX:PermSize=256m
      -XX:MaxPermSize=512m
      
    0 讨论(0)
  • 2020-12-24 13:11
    • 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
    
    0 讨论(0)
  • 2020-12-24 13:12

    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.

    0 讨论(0)
提交回复
热议问题