본문 바로가기

카테고리 없음

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class 오류

책을 보며 공부하고 있다가 아래와 같은 오류가 났다.

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class

무슨말인지 모르겠어서 찾아보니까 자바버전과 스프링버전이 달라서 생기는 오류라고 한다.

현재 나는 Java 18 과 JUnit4 로 세팅이되어있는데 아마 둘 사이의 버전이 맞지 않아 생기는 오류인 것 같다.

 

그래서 버전을 맞추고자 Java 버전을 18 -> 8 로 낮추기로했다.

 

Java 8 버전을 다운로드 받았고 다음과 같은 단계를 거쳐 intellij에 Java 8 버전을 적용시켰다.

1. 자바 제어판에서 새로 다운받은 Java 8 버전 체크 

2. 환경변수 편집

3. intellij에서 프로젝트 JDK 변경

 

그리고 기대하는 마음으로 다시 코드를 돌려보았다...

새로운 오류가 떴다.

java: error: invalid source release: 18

 

찾아보니 이 방법은 프로젝트 구조에서 language level만 바꾸면 되는 간단한 오류였다.

Java 8을 사용하기에 언어수준을 그에 맞춰 변경하고 재빨리 코드를 다시 돌려보았다.

역시나 새로운 오류가 떴다... 하하

 

java: invalid flag: --add-modules

이 오류가 날 힘들게 했다.

Java 컴파일러에서 옵션의 추가 명령줄 매개변수를 지우라는 글을 찾았고 신나서 들어갔지만

이미 추가 명령줄 매개변수에는 아무것도 없었다.

.

.

.

검색 끝에 캐쉬 무효화라는 방법을 사용해보았다.

그리고 아래 사진에 나와있는 모든 체크박스를 클릭하고 다시 시작하였다.

그리고 혹시 몰라서 환경 변수랑 JDK도 다시 설정하였다. 

 

그랬더니 오류가 해결되었다!

 

오류가 생겼을때 어떤 문제인지 정확하게 알고 해결할 수 있으면

얼마나 좋을까라는 생각을 하였다.