Sayfalar

4 Aralık 2007 Salı

Eclipse Europa ve "java.lang.OutOfMemoryError: PermGen space" hatası

0 yorum
Uzun zamandır, Eclipse 3.1 versiyonunu kullanarak geliştirme yaparken, yeni gelişmelerden faydalanabilmek için, Eclipse Europa (Eclipse 3.3) yı kurmaya karar verdim. Eclipse 3.3 'ün ilginç ve yararlı birçok özelliğini görüp, memnun kaldıktan sonra, geliştirmelerime, artık bu versiyonda devam etmeye karar verdim. Bunun üzerine eski eclipse'deki tüm tanımlarımı(claspath variables, ant builds vs.) yeni eclipse'e taşıyıp, geliştirmeme devam ettim. Fakat, bir süre çalıştıktan sonra, eclipse'in aniden(workspace'i kaydetmeden) kapanması ve yeniden açtığımda, yaptığım tüm tanım ve ayarlamaların kaybolması beni çileden çıkardı. Tam aldığım karardan pişman olup, eski eclipse'e dönecektim ki, eclipse'in, "..eclipse\workspace\.metadata\" dizinindeki ".log" dosyasına, aşağıdaki hatayı atarak kapandığını farkettim.

java.lang.OutOfMemoryError: PermGen space


Daha önceden, eclipse'i "..eclipse" dizinindeki "eclipse.ini" dosyasına aşağıdaki parametreleri de ekleyerek başlatıyordum.

-vmargs
-Xms512M
-Xmx1024M


Buradaki -Xmx değerini arttırmama rağmen sorun düzelmeyince, Internette bu hatayı kısa bir süre araştırdıktan sonra, sorunu yaşayan tek kişinin ben olmadığımı farkettim. Sorunun nedeni JVM'in data structure ve class tanımlarını sakladığı "permanentSpace" alanının dolmasıydı.

Sorunun çözümünde ise yukarıdaki parametrelere şunları da eklemem gerektiğini öğrendim.

-XX:PermSize=128M
-XX:MaxPermSize=128M


Buradaki parametreler için uygun bir değer belirledikten sonra, artık bu sorunu yaşamıyorum...


Yararlandığım Kaynaklar:


ali kemal taşçı