본문 바로가기

개발관련/기록

java.lang.NoClassDefFoundError 에러 / 경험횟수 2

728x90

https://nhj12311.tistory.com/84

 

java.lang.NoClassDefFoundError 에러 해결 방법

얼마 전 업무를 하다 java.lang.NoClassDefFoundError 를 만났는데 상당수 ClassNotFoundException와 헷갈리는 부분이 있을 것 같다. 과거에도 이 에러를 많이 만났지만 그때마다 어찌저찌 해결만 했을 뿐 명확

nhj12311.tistory.com

 

 

 

 

 

컴파일 환경에서는 클래스가 참조 되었으나 실행 환경에서는 해당 클래스를 찾을 수 없는 경우에 발생한다.

(따라서 코드 작성시에는 문제가 없으나 spring boot나 was로 실행시킬 때 만나거나, 서버에 올렸을 때 해당 에러가 발생하게 된다.)

필자는 서버를 실행시킬 때 해당 에러가 발생하였다.

따라서 클래스를 찾지 못한다고 인지하여 project clean 을 한 후 다시 서버를 실행시키니 해결되었다.

서버 중지 후 프로젝트를 클린한다.

이클립스가 컴파일 과정에서 처음부터 모든 소스들을 컴파일하지 않고 수정된 부분만 컴파일하여 시간을 단축한다.

(캐시 개념으로 생각중이다.)

따라서 clean하게 되면 기존 컴파일 되었던 정보를 지우고 처음부터 모든 소스들을 다시 컴파일한다.

 

 

 

 

 

project clean으로 해결되지 않았다면

위에 참조한 글의 내용 처럼

컴파일 시 참조했던 class path와 librararies를 실행환경이나 서버에 동일하게 맞추어 주거나

jar 버전을 확인하는 방법도 있을 것이다.