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파일 실행을 해보면 제대로 결과가 나오는것을 확인 할 수 있다.
'Note > JAVA' 카테고리의 다른 글
[JAVA] 난수를 발생해주는 클래스, Random클래스 (0) | 2018.12.14 |
---|---|
[JAVA] Scanner클래스로 콘솔 입력하기 (0) | 2018.11.07 |
[JAVA] System.out.printf 의 서식문자(변환문자) 정리 (0) | 2018.11.07 |
[JAVA] 비트 쉬프트(Shift)연산자 : << , >> , >>> (2) | 2018.10.05 |