I got java.lang.OutOfMemoryError even if I increased the permgen size available to Eclipse. How to fix?

StackOverflow https://stackoverflow.com/questions/11811291

I've modified eclipse.ini to fix java.lang.OutOfMemoryError. But the problem still persists. These are the options set inside eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.rcp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
3000m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XX:MaxPermSize=3000m
-Xms3000m
-Xmx3000m
-XX:PermSize=3000m 

This is the error that I get when I open any file of a generic Android project:

Exception in thread "org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:614)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

Note: I'm using Eclipse junco on Ubuntu 11.10 and I'm trying to developing an android app with ADT plugin.

有帮助吗?

解决方案

I've fixed: I removed my eclipse "Eclipse for RCP and RAP Developers" and I used "Eclipse IDE for C/C++ Developers" instead. Now everything works fine. Thank you every body for your help!

其他提示

You might want to look at your code instead of eclipse. Maybe there's a bug in it which is causing it to allocate too much memory or it is not written very efficient. Possible causes of out an memory exceptions would be:

-Loading large files in to the RAM

-Infinite loops creating objects or appending data to variables

-Storing large amounts of any kind of data in the RAM

I hope this will help you get closer to a solution.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top