Spring 프로젝트 생성 시 언어 설정이 맞지 않아 Gradle 문제가 발생하는 경우 할 수 있는 해결 방안
문제
평소처럼 프로젝트를 생성하는데 아래와 같은 오류가 발생했다.
could not resolve all dependencies for configuration ':compileClasspath'
Filed to calculate the value of thask ':compileJava' property 'javaComiler'.
Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=23, vendor=any vendor, implementation=vendor-specific} for WINDOWS on x86_64.
No locally installed toolchains match and toolchain download repositories have not been configured.
원인
읽어보니 설정한 자바 버전과 맞지 않는 것 같았고 jdk 17로 실행했는데 왜 23버전으로 나올까 싶어 새로운 프로젝트 생성을 눌러보았다.

Spring 프로젝트를 생성할 때 자동으로 Java 버전이 23으로 설정되어 있었다.
그 위에 jdk는 17버전이었지만 자바 언어가 달랐다.
해결 1. 버전 확인
먼저 cmd창에서 기본 설정된 자바 버전을 확인해보았다
java --version
기본으로 설정된 jdk는 19버전이었고, 컴퓨터에 설치된 jdk는 19와 21 두개가 있었다.
17버전은 인텔리제이에서 제공하는 jdk17을 사용하고 있었는데 혹시 몰라 오라클에서 직접 jdk17을 설치해주었다.
환경 변수 설정까지 모두 마치고 난 뒤에 gradle 동기화를 해보았지만 아직도 같은 오류 발생
해결 2. '프로젝트 구조'에서 언어 변경
프로젝트 구조 (ctrl + shift + alt + S)를 눌러 언어 설정을 확인하였다.




Oracle에서 설치한 17이든, Jetbrains에서 제공하는 17이든 상관없다는 것을 알았다.
일단 17버전으로 제대로 적용되었는지 확인했다.
내가 따로 변경한 것 없이 모두 jdk 버전은 17이었지만 다시 동기화를 해도 오류는 그대로였다.
해결 3. 새로 생성

외부에서 할 수 있는 변경을 모두 했지만 해결되지 않았다.
프로젝트 구조에서 SDK 언어 수준도 17이었지만 바뀌지 않는 걸 보니 처음 프로젝트 생성에서 설정한 게 문제가 되나 싶었다.
결국 기존 프로젝트를 삭제하고 Java 17로 다시 시작해주었고 오류는 해결되었다.
빌드 성공

먼저 설정한 버전이 서로 일치한지 확인한 뒤에 문제가 되는 버전을 맞춰주었고, 프로젝트 구조를 확인해 특이사항을 확인하였다. 그리고 동기화, 빌드가 제대로 되라며 기다리는 것보다 프로젝트를 새로 생성하는 등 할 수 있는 건 모두 해보자.
'etc > error' 카테고리의 다른 글
[Spring] try-catch에서 SQLException이 잡아지지 않을 때 해결 (0) | 2025.02.12 |
---|---|
[JS] Uncaught ReferenceError: ... is not defined 오류 해결 방법 (0) | 2024.12.27 |