티스토리 뷰

반응형

안녕하세요! 

오늘은 무시무시한 오류.. 

오류: 기본 클래스 ...을(를) 찾거나 로드할 수 없습니다.

에 대해서 알아보려고 해요!

 사실 이 전글에서 컴파일 하는데도 이 오류때문에..

한참을 헤맸답니다. 

(이 오류는 이클립스에서는 안났지만 터미널로는 났어요.)


먼저 말씀드릴건 이 오류가 발생해서 찾아보셨다면,

프로젝트를 우클릭하여 > Properties > Run/Debug Setting > 삭제

를 해보라는 글을 많이 보셨을 거에요. 

저는 이방법으로 오류를 못고쳤습니다.

이 삭제 하고말고의 문제가 아니었어요.


저처럼 저 방법을 써도 안된다 하시는 분들은 먼저 자기 이클립스로 

한 번 가봅니다.

음 깔끔해



패키지 별로 정리까지..!! 

깔끔해








혹시 이렇게 폴더(패키지)를 만들어서 관리하시고 있으면


오류: 기본 클래스 ...을(를) 찾거나 로드할 수 없습니다.


이 오류가 생길 확률이 아주 많다고 볼 수 있습니다. 


왜냐하면..우리는 

이전글에서 

소스코드 우클릭 > Properties > Resource > Location

에 가서 위치를 얻어서...



저기까지 복사하고

터미널에 복붙한다음 

javac 파일이름.java를 입력해주고

(.class파일 생성)

java 파일이름을 하면 

컴파일이 되어서 제 코드가 실행되어야 하는데

.....이런 오류가 생기게 됩니다.


이 오류가 생기는 이유를 간단하게 말하면!!!

패키지로 분류해놔서!!!!!!!!

그렇습니다ㅎㅎ


자, 이제 제대로 실행하는 방법을 알려드릴게요. 


자, 폴더 구성이 일단 이렇게 되어있는데요,

src에 제가 생성한 패키지들이 폴더로 들어가있네요?

우리는 src > week1에 들어가서 터미널에서 작업을 했었죠?

하지만


 java 프로그램에서는 인자로 들어온 (패키지 이름이 모두 포함된) full class name을 가지고 클래스


파일들을 찾기 때문에 상위 디렉터리(또는 패키지의 루트 디렉터리)에서 실행을 해야 해야합니다. 





간단하게 말하면

java 명령은 패키지의 parent 디렉터리 위치에서 실행하되, 

실행할 클래스 파일의 이름은 패키지명.클래스파일명 이렇게 주어야 합니다.


예제를 통해 보여드릴게요. 


먼저, 

java 명령은 패키지의 parent 디렉터리 위치에서 실행하되

..라고 했죠?

현재 패키지는 week1입니다. 이 week1의 parent디렉토리는 어디죠?

네. src네요!


src로 가볼게요. 


cd ..을 하시면 바로 전 디렉토리로 가시는 건 아시죠?

자 src에 왔습니다. 


두번째 과정.

실행할 클래스 파일의 이름은 패키지명.클래스파일명 이렇게 주어야 합니다.

우리는 위에서 javac명령어를 통해서 .class파일을 생성한 상태죠?

이 src디렉토리에서 또 한번 javac명령어를 수행할 필요는 없습니다.


그리고 패키지명.클래스파일명 을 해주라네요? 

자 어떻게하면 될까요?


$ java 패키지명.클래스파일명

java명령어를 사용할때는 아무 확장자도 붙히지 않는다고 그랬죠?

HelloWorld가 들어있는 패키지가 week1이므로 

week1.HelloWorld가 되겠네요.

실행해볼까요? 


짠!!ㅎㅎㅎ

자 앞으로 패키지를 만드는데 터미널로 실행을 한다..하면

주의합시다!!!

사실 패키지를 안만들면(매번 새 프로젝트를 만들면)

이런 오류가 생길확률이 줄어들겠죠?ㅎㅎ


도움이 되었으면 좋겠어요!🙏





반응형