서버/스프링(Spring)

[Spring/error] An error has occurred. See error log for more details. java.lang.ExceptionInInitializerError

도트7 2022. 1. 21. 19:44

 이클립스에서 스프링 프로젝트를 시작할 때 많이 겪는 에러가 아닐까 한다. 이 에러 메시지로 구글링을 하면 여러 가지 에러 발생 원인과 해결방법이 존재한다. 그 중 내 컴퓨터 환경에서 이 에러가 발생한 원인은 자바와 이클립스의 버전이 맞지 않았기 때문이었다.

 

에러 발생 상황

 [File - new]으로 스프링 프로젝트를 생성하는 화면이다. 여기서 Spring MVC Project를 선택하고 Next 버튼을 누르면 에러가 발생할 때가 있다. 예전에 마주하고 해결했던 에러이기에 아차하고 금방 처리해서 스샷은 없지만 에러 메시지 창에 아래와 같은 메시지를 출력하며 더 이상 프로젝트 생성이 진행되지 않는다.

 

"An error has occurred. See error log for more details. java.lang.ExceptionInInitializerError"

 

 

에러 발생 원인

 이 에러가 일어나는 이유는 이클립스 버전과 자바 버전이 맞물리지 않기 때문이다. 이클립스 버전 2020-06 까지는 자바 8을 지원했지만 2020-09부터는 자바 11만 지원한다. 물론 기존의 자바 코딩을 하는데 문제는 없다. 이것은 스프링에 국한된 이야기다.

 

 해결 방법

 1. Java 8을 사용하면서 Eclipse 2020-09 이상 버전일 경우

 → Java 11을 설치하고 이클립스의 jdk 경로를 다시 잡아준다..

 

 2. Java 8을 사용해야만 하는 환경일 경우

 → Java 8을 사용해야만 하는 환경이라면 이클립스 자바 8을 지원하는 이클립스 2020-06버전을 설치해서 사용한다.

 

 3. Java 8과 11이 같이 설치되어 있는 경우

 → 이클립스의 버전이 2020-06 이하라면 이클립스의 jdk 경로를 java 8로 잡아준다. 

 → 이클립스의 버전이 2020-09 이상이라면 이클립스의 jdk 경로를 java 11로 잡아준다.

 

 이클립스, 자바 버전을 제대로 볼 줄 모르겠고 경로 잡는 것도 힘들다라고 한다면 프로젝트나 설정을 백업한 뒤 이클립스와 자바를 모두 삭제하고 맞는 버전으로 다시 설치하는 것도 좋을 것이다.