Eclipse(이클립스)를 실행하다 보면 다음과 같은 오류가 발생할 경우가 있다. 보통 자바 개발을 위해 이클립스를 사용하는데 주고 C, C++, MFC 쪽만 다루다 보니 가끔 필요에 의해 이클립스를 설치하게 된다. 이럴때 마다 나의 습관때문에 다음과 같은 오류가 발생하곤 한다. 


오류가 발생했으니 오류에 대한 로그를 확인하라는 것이다. 해당 오류를 확인하면 다음과 같은 내용이 기록되어 있다. 

!SESSION 2009-09-23 15:49:12.625 -----------------------------------------------
eclipse.buildId=I20090611-1540
java.version=1.6.0_15
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ko_KR
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2009-09-23 15:49:14.171
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.simpleconfigurator.Activator.start() of bundle org.eclipse.equinox.simpleconfigurator.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:805)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.NullPointerException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorUtils.getBundleLocation(SimpleConfiguratorUtils.java:178)
at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.installBundles(ConfigApplier.java:192)
at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:89)
at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
... 10 more
Root exception:
java.lang.NullPointerException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorUtils.getBundleLocation(SimpleConfiguratorUtils.java:178)


해당 오류를 보면 정확히 뭐가 원인인지 파악하기 어렵게 보일 수 있다. 하지만 잘 살펴보면 java.lang.NullPointerException 예외가 발생하는데 알 수 없는 URL을 참조했다는 내용이다. 원인은 다름아닌 해당 이클립스의 경로에 "[" 또는 "]" 문자가 들어있는 경우 해당 URL을 정확하게 인식할 수 없어서 발생한다. 위의 그림에서 알 수 있듯이 현재 이클립스의 경로는 "D:\STUDY\[ Eclipse ]\" 이다. 

따라서 해당 경로에서 "[" 또는 "]" 문자를 제거해주면 된다. 어찌 보면 이러한 오류는 발생하면 안되는 것이다. 내부적으로 해당 문자를 특수한 용도로 사용하거나 처리루틴을 만들어 주지 않았다는 것인데 초기 이클립스를 쓸 때 부터 현재까지 해결되지 않고 있다. 처음 이클립스를 사용한 것이 2005년도 였으니 말이다. 

아니면 현재 이클립스가 위치한 경로가 잘못되었다고 명시적으로 알려주는 것도 아니고 로그만 보고 판단하라는 것이 좀 어처구니가 없다. 이전에 경험했음에도 불구하고 해당 오류가 발생했을 때 한동안 삽질한 것을 생각하면...ㅡㅡ;; 

저작자 표시 비영리 변경 금지
신고
Posted by Proneer

댓글을 달아 주세요


티스토리 툴바