Programming/Error

eclipse Spring Legacy Project 생성 과정에서 발생한 오류

Jan92 2024. 1. 7. 15:10

eclipse Spring Legacy Project 생성 과정에서 발생한 오류

eclipse Spring Legacy Project 생성 과정에서 발생한 오류

 

'이클립스 환경에서 Spring Legacy Project를 생성하는 과정에서 발생한 아래 두 가지 오류와 해결 방법'을 정리한 내용입니다.

관련 오류들이 발생하는 가장 주된 원인은 eclipse와 java 버전이 호환되지 않아 발생하는 것이며, sts 버전에 따라서도 원인과 해결 방법이 다를 수 있다는 점 참고 부탁드립니다.

 

* 오류가 발생했던 작업 환경은 다음과 같습니다.

macOS Monterey 12.5.1 버전 / eclipse 2022-03 (4.23.0) 버전 /  Spring Tools 3 (Standard Edition) 3.9.14.RELEASE / Spring Tools 3 Add-On for Spring Tools 4 3.9.22.RELEASE

 

* 발생했던 두 가지 오류

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

 

An error has occurred. See error log for more details.
Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter

 


ExceptionInInitializerError

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

먼저 Spring Legacy Project 생성 과정에서 발생한 첫 번째 오류입니다.

 

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

 

해당 오류는 자바 버전이 호환되지 않아 발생된 것으로 추측되며, 아래 'Preferences' -> 'Java' -> 'Installed JREs'에서 Java 11 버전을 설정해 줌으로써 해결되었습니다.

 

Installed JREs

아래 스프링 공식 문서에서 해당 Spring Tool Suite 버전의 eclipse 및 JDK 호환 버전을 확인할 수 있었는데요.

변경 전(오류가 발생했을 때)에는 'Java SE 12.0.1'로 설정되어 있었으며, 'Java SE 11.0.21'으로 변경한 뒤 해당 오류가 발생하지 않았습니다.

 

https://docs.spring.io/sts/nan/v3914/NewAndNoteworthy.html

(공식 문서에서는 JDK11이 최소 요구사항인데, 상위 버전이 안 되는 명확한 이유는 잘 모르겠습니다.)

 


Could not initialize class PropertiesConverter

Cloud not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter

위 ExceptionInInitializerError 오류를 해결한 뒤 Spring Legacy Project를 생성했을 때 다음과 같은 두 번째 오류가 발생하였습니다.

 

해당 오류와 관련된 내용을 찾아보던 중 이클립스는 'JAVA_HOME' 환경변수를 참조하지 않고 'eclipse.ini' 파일을 통해 필요한 정보를 참조한다는 내용을 발견할 수 있었는데요.

 

 

eclipse.ini

따라서 'eclipse.ini' 파일을 찾아 아래 '-vm' 부분을 JDK11이 설치된 경로로 변경하는 작업을 추가로 진행하였습니다.

(macOS에서 eclipse.ini 파일을 찾기 어려운 경우 '응용 프로그램' -> 'Eclipse.app'을 우클릭하여 '패키지 내용 보기'를 통해 위 이미지 경로로 들어갈 수 있습니다.)

 

eclipse.ini 파일의 -vm 부분(수정 전)

위 내용을 아래와 같이 JDK11이 설치된 경로로 바꿔줍니다.

 

// macOS 예시
-vm
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/java

(해당 경로는 현재 제 mac에 JDK11이 설치된 경로이며, 운영체제 또는 설치 방식에 따라 경로가 다를 수 있습니다.)

 

// windows 예시
-vm
C:\Program Files\Java\jdk-11\bin\javaw.exe

(windows의 경우 다음과 같이 jdk가 설치된 경로의 javaw.exe 파일을 최종으로 명시해 줍니다.)

 

이렇게 수정된 내용을 저장한 뒤 이클립스를 재실행하면 eclipse에서 Spring Legacy Project가 정상적으로 생성되는 것을 확인할 수 있었습니다.

 

 


< 참고 자료 >

https://how2develop.blogspot.com/2013/01/blog-post.html

https://pinery11.tistory.com/75