Exception in thread "main" java.lang.NoClassDefFoundError:xxxxx
Exception in thread 'main' java.lang.NoClassDefFoundError
도스창이나, eclipse 등등 자바 실행시 이런 문구가 떠서
당황해본 경험이 있다. OTL...
이런 메세지가 뜨는 것에는 2가지 이유가 있다.
자바실행시, 파일명을 잘못 입력했던가
아니면, classpath 를 잘못 지정했기 때문이다.
1. 자바실행시 잘못된 파일명 입력
예를 들어, 도스창에서 자바파일을 컴파일하고, (javac Hello.java)
실행을 시킬 때, (파일명 : Hello.java , Hello.class)
java Hello.java <- 이렇게 하면 당연히 위에 메시지가 뜬다 ㅡㅡ;;...
java hello.java <- 이렇게해도 당연히 뜬다 ㅡㅡ....
java Hello <- 이렇게 해야한다!! ^^
java 실행시 대소문자를 구분하고, 컴파일된 것을 실행시키는 것이기 때문에,
*.java를 실행시키려는 무모한 도전은 자제를 부탁한다.
<여기서 잠깐!! 자바프로그램 실행의 기본적인 개념>
※ 컴파일(compile)이 뭐죠?
- 컴파일(compile)이란 사람이 알아 볼수있게 만든 프로그램소스를 기계가 알아 볼수있게
만들어주는 작업입니다. 사람은 십진수를 쓰고, 영어를 사용하지만, 컴퓨터는 2진수에
영어도 쓸줄 모르잖아요. ^^ 그래서, 컴퓨터가 쉽게 이해할수 있게 컴파일을 하는 것입니다.
결국 프로그램을 실행시켜주는 것은 사람이 아니라, 컴퓨터니까요.
※ java파일과 class파일의 차이가 뭐죠?
- 자바를 실행시킬 때, 컴파일을 합니다. 그러면, *.java파일이 컴파일되어서 *.class파일이
생겨납니다. 컴퓨터가 처리할수 있는 파일은 *.class파일이기 때문에 자바에서 실행시
명령어를 [java 파일명] 으로 쓰는 것입니다. 확장자 java를 붙이면 안되는 거죠. ^^
결국, java파일은 사람이 만들고 쓰는 것이고, class파일은 컴퓨터가 만들고 처리하는
것이죠.

Exception in thread "main" java.lang.NoClassDefFoundError:xxxxx
대략 이런식으로 에러 뜰떄는 클래스를 못찾는거다
CLASSPATH=.; <=이걸 추가시켜줘야 한다
( 현재폴더를 classpath에 추가하는걸 의미한다)