2010. 7. 20. 23:38

java.lang.OutOfMemoryError: PermGen space

Why am I getting a java.lang.OutOfMemoryError: PermGen space?


The default maximum PermGen space set by your JRE may be too small. You can increase the maximum PermGen size by launching WTP with VM argument: -XX:MaxPermSize=128m

Note that this issue only appears to happen using a Sun Java Runtime. Others runtime environments do not seem to have this issue.


http://wiki.eclipse.org/WTP_FAQ#Why_am_I_getting_a_java.lang.OutOfMemoryError:_PermGen_space.3F


라고 이클립스 위키에 정리되어 있다...난 또...이클립스가 원래 그런줄 알았네... ^^;

Sun Java Runtime 만 그렇다니... 헐...


해결책은 이클립스 바로가기에 


 -vmargs XX:MaxPermSize=128M

를 추가해주자. 전체로는 아래와 같은 형태가 될 것이다. ini 를 고치는 방법도 있을텐데..그건 skip. ^^


D:\eclipse-java-galileo-win32\eclipse\eclipse.exe -vmargs XX:MaxPermSize=128M


2010-7-22일 내용 추가


위 내용을 수정한 후에는 PermGen 으로 인해 죽는 현상은 발견되지 않았다. 하지만 android 소스를 받기 위해서 EGit 를 사용할 때면 자주 오류가 발생하곤 했다. 이를 해결하는 방법은 안드로이드에서 소개한 내용을 이용하면 된다.


eclipse.ini 파일에서 아래처럼 되어 있는 부분을


-Xms40m 
-Xmx256m
-XX:MaxPermSize=256m


 다음과 같이 수정한다.


-Xms128m 
-Xmx512m
-XX:MaxPermSize=256m


이렇게 한 후에, 혹시 수행이 이클립스 자체가 수행되지 않으면, 아래와 같이 java 의 실행 화일을 javaw 로 지정해 주면 된다.


-vm c:\Java\JDK\1.5\bin\javaw.exe


참고: 여기저기~