Eclipse Helios와 JDK 6u21를 사용할 때 OutOfMemory 오류가 발생하는 문제
지난 6월 23일에 발표된 Eclipse 3.6 Helios 를 슬슬 사용해 보려고 새로운 마음으로 JDK도 JDK 6 Update 21 을 다운받아서 설치하고 기존에 사용하던 프로젝트를 저장소에서 Checkout받자 프로젝트를 생성하던 도중 이클립스가 죽어버리는 현상이 발생했습니다. (Subclipse, m2eclipse 사용중)
기존에도 종종 이클립스는 메모리오류가 발생 하였기 때문에 아무생각없이 eclipse.ini파일을 수정하여 주었지만 좀처럼 해결되지 않고 계속 프로젝트를 받아오다가 번번히 죽어버렸습니다. 로그파일을 확인하니(.log파일은 workplace안에 .metadata폴더 안에 있습니다.) 아래와 같은 오류가 발생하였습니다.
java.lang.OutOfMemoryError: PermGen space
기존의 eclipse.ini파일의 수정으로는 도저히 해결이 되지 않아서 Helios가 안정적이지 않은 것으로 막연히 생각하고 있었는데 트위터를 통해서 해당 문제에 대한 해결책 을 얻을 수 있었습니다.
이 문제는 JDK 6u21에서 발생하는 문제인데 6u21에서 vendor명이 기존의 Sun에서 Oracle로 변경이 되었습니다. Eclipse 런처가 JVM의 벤더를 읽어서 Sun JVM일 경우에는 추가적으로 이클립스의 동작을 위해 필요한 XX:MaxPermSize 설정을 추가하는데 6u21에서는 Sun이 아닌 Oracle로 변경이 되어 이 설정이 먹히지 않는 것입니다. 이 내용은 이클립스의 버그로 등록 은 되었지만 9월에 예정된 Helios SR1에서 수정될 예정은 없어보인다고 합니다.
이클립스의 폴더안에 있는 eclipse.ini파일을 열어서 아래의 부분을 삭제합니다.
--launcher.XXMaxPermSize
256m
그 다음에 -Xmx설정뒤에 -XX:MaxPermSize=512m 를 추가하면 위의 OutOfMemoryError를 피할 수 있습니다.
아래 내용은 참고용으로 올리는 저의 eclipse.ini파일입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
이 문제는 Windows플랫폼에서만 발생한다고 합니다.
추가로 봄싹 의 김성호님이 공유해 주신 이클립스 위키에 위 문제의 해결법 에 대해서 잘 나와있습니다.
- 6u20으로 다운그래이드
- eclipse.ini에 -XX:MaxPermSize=256m 추가
- 수정된된 이클립스용 dll을 다운받아 사용
이렇게 3가지 방법숭 하나를 사용하라고 권하고 있습니다.
최신을
흐음 그렇군요!
예 그렇데요.
감사합니다.^^ 덕분에 문제를 해결했습니다. 오늘 하루종일 뭐가 문제일까 생각하며 O/S도 다시 설치하고 jdk 10번은 넘게 폴더 옮겨보며 깔았던것 같습니다. 정말 감사합니다~
뭐 인터넷에서 주은건데요 ㅎㅎㅎㅎㅎ 저도 이것때문에 헬리오스 버릴뻔했는데.... OS까지 다시 설치하셨다니 정말 고생하셨군요. ㅠㅠ
감사합니다! 오랜만에 최신 버전들로 환경설정하고 돌리다가 자꾸 에러가 나서 애먹었는데 덕분에 잘 해결했습니다.^^ 정보 공유의 중요성을 새삼 실감하게 되네요.
저도 고생했던 문제였는데 해결하셨다니 다행이네요. ^^ 정보 공유는 항상 중요하죠 ㅎ 즐거운 코딩 되시길 ㅎㅎㅎㅎ
자료 감사합니다. 퍼갈께용^^
감사합니다. CCL만 따라주세요 ^^
그런데, 저는 위와 같이 수정 후 이클립스를 띄우려고 하면 "Failed to create the Java Virtual Machine" 이런 메시지가 뜨면서 이클립스가 열리지 않는데 왜 그럴까요?
그 문제는 제가 겪어보지 않아서 정확하지는 않지만 JVM을 못 찾는것 같은데요. http://chanyook.egloos.com/2639920 이 링크를 참고해 보시면 될것 같은데요.
아, 알려주신대로 JDK 해당 경로 넣어주니까 열리네요. 감사합니다. ^^
다행히 해결되셨군요... ^^
6u20으로 다운 그레이드는 힘들듯 합니다. 이클립스 위키에 올려진 링크에는 6u20파일이 없더군요. 제 노트북이 64비트라서 더 구하기 힘들었던것 같습니다. 물론 구글에서요.. 좋은 정보 감사합니다. 안그래도 헬리오스 버리고 갈릴레오 갔다가 64비트가 없어서 난감해하고 있었네요
6u20은 아래 링크에서 다운로드 받으시면 될것 같습니다. https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u20-oth-JPR@CDS-CDS_Developer