Spring Boot 프로젝트를 IntelliJ에서 열고 Run Configuration을 설정하려는데, Main class 필드가 빨간색으로 표시되며 클래스를 선택할 수 없었다. 왜 IntelliJ는 이 클래스를 인식하지 못하는 걸까?
File → Project Structure → Project → SDKSettings → Build, Execution, Deployment → Build Tools → Gradle → Gradle JVM> Could not resolve all artifacts for configuration 'classpath'.
> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.4.2.
> Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM.
최초에 JAVA11로 실행했던 것이 원인이 이었다.
IntelliJ의 Project SDK를 Java 17로 설정해도, Gradle 데몬이 이미 Java 11로 실행 중이라면 빌드는 여전히 실패한다. 두 설정은 완전히 별개의 영역이기 때문이다.
JAVA_HOME = Java 11로 설정됨
↓
Gradle 데몬이 Java 11로 시작됨
↓
Spring Boot 3.4.2 플러그인 다운로드 시도
↓
"Java 17 이상 필요" → 의존성 해결 실패
↓
프로젝트 빌드 실패 (.class 파일 미생성)
↓
IntelliJ가 @SpringBootApplication 클래스 인식 불가
↓
Main class 선택 불가능
./gradlew --stop
이미 실행 중인 Java 11 기반 데몬을 종료한다.
Settings → Build, Execution, Deployment → Build Tools → Gradle
File → Sync Project with Gradle Files새로운 데몬이 Java 17로 시작되고, Spring Boot 플러그인이 정상적으로 다운로드된다.
Project SDK ≠ Gradle JVM (완전히 별개의 설정)
Gradle 데몬 = 한 번 시작되면 JVM 버전 고정
설정 변경 후 → ./gradlew --stop 필수
Main class 인식 불가 = 빌드 실패의 증상
오류 메시지는 Build 탭에서 확인