안녕하세요.
오늘은 스프링부트에서 자바 버전 충돌이 일어났을 때 해결하는 방법을 알아보겠습니다.
저는 스프링부트 프로젝트를 만들고 실행하였을 때 다음과 같은 오류 메세지를 확인하였습니다.
Dependency requires at least JVM runtime version 17. This build uses a java 8 JVM.

해당 문제는 Java 17 이상의 JVM이 필요한데, Java 8 JVM을 사용하고 있어서 발생한 문제입니다.
따라서 해결 방법은, 다음과 같이 Java 버전을 업그레이드하여 설정하는 것입니다.
1. 현재 자바의 버전 확인하기
우선 터미널을 키고 자바의 버전을 확인해보아야 합니다.
java --version

제 자바는 17로 잘 설정되어있었는데도 오류가 났네요.
2. build.gradle의 자바 버전 확인하기
build.gralde 파일에 명시되어 있는 자바의 버전도 확인해봅니다.

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
이 역시 17로 잘 설정되어 있었습니다..
3. 인텔리제이의 Gradle 버전 변경하기
인텔리제이의 Gradle 버전을 변경하여 버전을 맞추는 방법도 있습니다.
[IntelliJ] Gradle 버전 확인 및 변경
Gradle 버전 확인 및 변경 1. Gradle 설정 확인 Settings > Build, Execution, Deploymen > Build Tools > Gradle - Use Gradle from 에서 ‘gradle-wrapper.properties’ file 을 선택 2. Gradle 버전 확인 및 변경 Project Window > gradle > wrap
tychejin.tistory.com
위 글을 참고하여,
1) IntelliJ 의 Files -> Project Structure -> Project 의 SDK, Language Level 를 확인해보았습니다.
2) Files -> Project Structure -> Modules의 Language Level도 확인해보았습니다.
3) Files -> Project Structure -> SDKs의 JDK home path도 확인해보았습니다.
모두 잘 되어있었습니다,,
4. 현재 gradle 버전 확인하기
현재 gradle 버전을 확인하기 위해 다음 명령을 실행해보았습니다.
./gradlew --version

!! Gradle 버전이 8.8로 되어있네요.
4. 환경변수 설정 확인하기
환경변수의 설정도 확인해보았습니다.
윈도우 기준 고급 시스템 설정에 들어가서, 환경변수를 눌러줍니다.


해당 경로가 터미널에
java where
을 실행하였을 때 나오는 경로와 같은지를 확인해야합니다.

저는 이것두 잘 되어있었습니다.
5. 버전이 여러 개라면 필요 없는 버전 삭제하기
다만, jdk1.8버전도 같이 설치되어 있었습니다.
그래서 이것이 문제가 될까 하여 삭제해보았더니 해결되었습니다!
삭제 후
./gradlew clean build
해당 명령으로 이전 빌드의 잔여 파일을 제거하고 새롭게 빌드하면 해결이 될 것입니다.

'SPRING' 카테고리의 다른 글
| [spring] MVC 패턴과 뷰 템플릿 (0) | 2024.07.12 |
|---|---|
| [spring] 스프링부트에서 localhost:8080/hello.html의 의미 (0) | 2024.07.11 |
| [spring] localhost:8080 Please sign in (0) | 2024.07.11 |