본문 바로가기

Dev. Debug/프로그램

이클립스 외 cmd창에서 - 기본 클래스 을(를) 찾거나 로드할 수 없습니다.

인터넷의 수 많은 글들이 이 오류에 대해서, 클래스패스를 제대로 지정하지 않거나 혹 환경 


변수 등록을 제대로 하지 않아서 발생하는 문제라고 하고 있다. 그러나 환경 변수 혹은 클래스패스를 제대로 지정해도 문제가 해결되지 않았다.


-----


이클립스를 사용하던 도중 프롬프트 상에서 직접 자바 클래스파일을 실행할 필요가 생겼다.


이클립스에서 작성한 자바 파일에 해당하는 클래스 파일은 워크스페이스폴더\프로젝트폴더


\bin\패키지명\안에 저장되므로, 프롬프트창에서 해당 디렉터리까지 이동한다음에 java 


명령을 내려 클래스파일을 실행하려고 했다.


(참고로 나의 경우 이클립스에서 PMBS_Client_Test 라는 프로젝트를 사용하고 있었고, 그 안


에서 client라는 이름의 패키지를 만들고 그 안에 MainClient.java 파일을 만들어 코드를 작성


하고 있었다.)






나는 이클립스를 사용하기 때문에 jdk와 관련된 CLASSPATH나 JAVA_HOME 같은 환경변수


들을 설정하지 않았었고,이 때문에 직접 java 명령을 내려 클래스파일을 실행하는 경우에 문


제가 생기는 것이라 생각했다.


그러나 환경 변수를 설정하거나 혹은 java 명령에 직접 -classpath나 -cp 옵션을 주어도 동


일한 오류가 발생하는 것이었다.


해결방법은 간단했다.


별도로 패키지를 만들어 사용하는 경우에, java 명령은 패키지의 parent 디렉터리 위치에서 


실행하되, 실행할 클래스파일의 이름은 패키지명.클래스파일명 이렇게 주어야 한다.





나의 경우 bin폴더 안에 client패키지가 있고 그 안에 MainClient.class 파일이 있으므로


패키지의 parent 디렉터리인 bin폴더 위치에서 java 명령을 실행하되, 실행할 클래스파일의 


이름은 MainClient가 아니라 client.MainClient가 된다.