본문 바로가기

4. 테크니컬&팁

NoClassDefFoundError에 이리저리 클래스를 찾아 다니시는 당신에게..

배치를 작성하고 있었다. 서버에 jeus가 설치되어 있었으므로 jeus.jar를 잡아 주었지만.
아래와 같은 에러를 뿜어냈다.

*****************************************************************
Exception in thread "main" java.lang.NoClassDefFoundError: jeus/util/JeusException
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:810)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:147)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:475)
        at java.net.URLClassLoader.access$500(URLClassLoader.java:109)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:848)
        at java.security.AccessController.doPrivileged1(Native Method)
        at java.security.AccessController.doPrivileged(AccessController.java:389)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:371)
        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:442)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:260)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:60)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
        at javax.naming.InitialContext.init(InitialContext.java:233)
        at javax.naming.InitialContext.<init>(InitialContext.java:209)

JeusException을 찾을수 없다는 오류를 뿜어냈다..
이것이 무시무시하다..
jeus.jar 파일에 모두 들어 있을 법한 JeusException이 jeus.jar가 아닌 jeusutil.jar에 들어 있을 줄이야..
그럼 그거 하나만 잡으면 다 되는것이냐...
아니다...ㅡ,.ㅡ;;

잡아주고 잡아주고 잡아주고.. 한 4~5개 정도 잡아줘야 NoClassDefFoundError를 더이상 보지 않게 될 것이다.ㅡ,.ㅡ

문제는 이게 클래스가 어느 jar파일에 들어 있는지 찾기 어렵다는것이다.

자..  파인드자르 싸이트를 소개한다. ㅎㅎ

http://www.findjar.com/index.x