본문으로 바로가기

JAVA에 대한 기본이해없이 개발을 하다가 다시한번 공부하고 싶은 마음이 들어


난 정말 JAVA를 공부한적이 없다구요(윤성우 저) 를 이용해서 다시 보는중인데

처음 예제부터 클래스 파일이 실행되지 않고 오류를 뱉었다.



컴파일 오류는 없었으나 실행시에 오류: 기본 클래스 FirstJavaProgram을(를) 찾거나 로드할 수 없습니다.


라는 오류 메시지를 뱉었다.


구글링결과 패키지 관련 글과 java 명령어에 옵션으로 -classpath . FirstJavaProgram과 같이 실행하라는 말이 있었으나,

classpath 옵션의 경우 제대로 실행은 되지만 매번 이렇게 주는게 근본적인 해결은 되지 못할 것 같았고 문제가 있어보이는

classpath에 뭔가 문제가 있을 것 같았으며, 해결한 방법은 다음과 같다.



먼저 자바를 설치하면서 설정한 환경변수를 확인해본다.


확인하는 방법은,

내PC에서 우클릭 - 속성 - 고급 시스템 설정 - 환경변수 

로 접근하여 설치시에 설정했던 환경변수중  CLASSPATH를 확인해보자.



다음과 같이 설정되어 있다면, %JAVA_HOME%\lib을 %JAVA_HOME%\lib;.; 로 바꾸고 저장한다.


아마 위와같이 설정이 되어있어도 명령어 프롬프트 창에서 java, javac의 명령어에 반응 하며 실제로 설치가 잘 되어 있는 상태이지만,

메모장을 이용해 임의의 코딩을 하고 특정 디렉토리에 저장한 뒤 실행할때 제대로 실행 되지 않는 이유는 CLASSPATH의 경로에 

해당 JAVA파일의 경로가 지정되어 있지 않기 때문으로 보여진다. 


CLASSPATH는 말그대로 class의 경로이다. 설정해놓은 class경로인 %JAVA_HOME%\lib 의 경로에 해당 클래스가 없기때문에 해당 클래스를 

못 찾는다는 오류가 나오는 것으로 보인다.


이를 확인하기위해 변수값을 %JAVA_HOME%\lib 이 아닌 현재경로를 뜻하는 .를 넣거나 실습하기위한 파일을 모아둔 경로인

C:\Users\mck23\Desktop\Docs\00.Study\00.java를 공부한적이 없어요\chapter01 를 넣은 뒤 다시 명령어 프롬프트를 실행하여보니

java명령어로 되지않았던 JAVA파일을 실행시 제대로 실행되는 것을 확인하였다.


따라서 기존  %JAVA_HOME%\lib 에 현재 엑세스 중인 디렉토리를 classPath로 사용하기위하여  %JAVA_HOME%\lib에 ;.;를 추가하여 넣어준다.


여기서 ;는 해당 패스를 마친다는 뜻으로 넣는 것이며 결과적으로는

 %JAVA_HOME%\lib;

.;


두 가지 패스를 지정하는 것이된다.




이처럼 설정한 뒤 다시 명령어프롬프트를 재시작하고 되지않았던 JAVA파일 실행을 해보면 제대로 결과가 나오는것을 확인 할 수 있다.