STS - java.lang.ExceptionInInitializerError
STS에서 오랜만에 Spring Legacy Project 선택 후 Spring MVC Project를 생성하려고 했는 데 다음과 같은 에러메시지가 나타나면서 Spring MVC Project가 생성되지 않았습니다. 가장 먼저 의심되는 부분은 jdk 버전문제였습니다. 이전에 제가 STS로 문제없이 프로젝트를 생성하고 진행할 때에는 jdk1.8을 사용했었는 데, 현재 PC에는 jdk 11.0.12가 설치되어 있는 상황이었습니다. 그래서 해볼 수 있는 가장 쉬운 해결책, 우선 STS의 업데이트를 확인하고 가능한 업데이트들을 진행하였지만 문제는 해결되지 않았습니다.
여러번 프로젝트 생성을 시도해보았지만 위의 두 가지 종류의 에러메시지가 반복적으로 나타나는 것 외에는 진전이 없었고, JDK도 완전히 삭제 후 여러번 재시도 해보았지만 해결되지 않았습니다.
솔루션
결론부터 말씀드리면, STS 자체에 조금 문제가 있었습니다. 이 문제를 해결하기 위해서는 STS 애플리케이션이 가지고 있는 "SpringToolSuite4.ini" 라는 파일을 수정해야 합니다.
우선 Finder를 실행 후 "응용 프로그램"으로 이동하여 "STS"를 찾아줍니다.
그리고 마우스를 우클릭하여 "패키지 내용 보기"를 클릭합니다.
그러면 "Contents"라는 폴더가 나타나는 데 다음의 경로로 이동하여 "SpringToolSuite4.ini"라는 파일을 찾고 열어줍니다.
Contents -> Eclipse -> SpringToolSuite4.ini
해당 소스파일을 열어보시면 다음과 같이 구성되어 있습니다.
여기서 드래그 된 부분 "-vm"으로 시작하는 부분 아래에 현재 여러분이 설치하신 jdk의 Contents/Home/bin 경로를 넣어주시면 됩니다. 만약 STS를 실행 중이셨다면 "Command + Q" 로 STS를 완전히 종료해주시고, 재실행 해주시면 됩니다.
현재 추정하는 내용으로는 jdk 버전문제가 맞습니다. 기존에 STS에서 vm을 실행하는 jdk가 제가 다운받아서 설치한 버전이 아닌 STS에서 자체적으로 다운로드한 jdk 17.0.2 가 설치되어 있었는 데 아마 이 부분이 문제가 있었던 것 같습니다. jdk 최신인 17을 사용하지 않은 이유는 최근에 Spring Legacy Project에 비해서 더 많이 사용되고 있는 Spring Boot의 경우에도 개발환경 구축 시 jdk 11 버전을 설치할 것을 권장하고 있습니다. 최신 jdk를 사용하면 좋겠지만, 같이 연동이 되어야하다보니 비교적 안정적인 버전을 선택하여 개발환경을 구축하는 것이 옳은 선택이라고 생각됩니다.
한번 경험해보면 나중에도 그 기록을 보고 그대로 아무 문제 없이 할 수 있을 것이라고 생각하지만, 정말 큰 착각인 것 같습니다. 시간이 지남에 따라서 기술은 발전하고 변화하기 때문에 항상 내가 알고있는 방법을 통해서 예전에 했던 방식이 제대로 동작하지 않을 수도 있다는 열린 생각을 가지고 임하는 것이 좋다는 배움을 얻게된 계기가 된 것 같습니다.
이것으로 STS에서 Spring Legacy Project => Spring MVC Proejct에서 java.lang.ExceptionInInitializerError이 발생하는 이슈에 대해서 다뤄봤습니다. 저도 이 문제를 해결하느라 정말 많은 시간을 사용했는 데 동일한 문제를 겪고 계신 분들에게 도움이 될 수 있는 글이 되었으면 좋겠습니다. 감사합니다.
'Web Backend > Spring' 카테고리의 다른 글
MyBatis - 2개 이상의 Query를 mapper에 한번에 작성하고 싶은 경우 (0) | 2022.01.14 |
---|---|
web.xml (A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type.) (0) | 2022.01.12 |
Annotation을 통한 DI를 사용한 CRUD 프로젝트 만들기 (0) | 2020.11.29 |
JSP Model1, JSP Model2, Spring MVC pattern (2) | 2020.08.10 |
Framework 개념 및 Spring 개요 (0) | 2020.08.10 |
댓글
이 글 공유하기
다른 글
-
MyBatis - 2개 이상의 Query를 mapper에 한번에 작성하고 싶은 경우
MyBatis - 2개 이상의 Query를 mapper에 한번에 작성하고 싶은 경우
2022.01.14 -
web.xml (A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type.)
web.xml (A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type.)
2022.01.12 -
Annotation을 통한 DI를 사용한 CRUD 프로젝트 만들기
Annotation을 통한 DI를 사용한 CRUD 프로젝트 만들기
2020.11.29 -
JSP Model1, JSP Model2, Spring MVC pattern
JSP Model1, JSP Model2, Spring MVC pattern
2020.08.10