Unsupported class file 오류 해결하기

최규진·2025년 4월 2일
0

최근 JDK 23 환경에서 Spring Boot 프로젝트를 빌드하려다가 아래와 같은 오류를 마주쳤습니다.

Unsupported class file major version 67

원인은 예상보다 복잡했고, Gradle과 JDK 버전 간의 미묘한 호환성 문제였습니다. 해결까지의 과정을 공유드리며, 비슷한 이슈를 겪는 분들께 도움이 되었으면 합니다.

💥 문제 발생 원인

  • Gradle 8.1.1은 JDK 23 (major version 67)을 공식 지원하지 않음
  • Gradle이 내부적으로 settings.gradle 같은 파일을 JDK로 컴파일
  • JDK 23으로 컴파일된 캐시가 남아 계속 충돌 발생

🔧 해결 방법 (정리)

1. JDK를 17로 변경

export JAVA_HOME=$(/usr/libexec/java_home -v17)
./gradlew clean build

2. IntelliJ에서도 JDK 17로 변경

  • Project SDK: JDK 17
  • Gradle JVM: JDK 17
  • Run Config JVM: JDK 17

3. Gradle 캐시 삭제

rm -rf ~/.gradle/caches
rm -rf ~/.gradle/scripts
rm -rf ~/.gradle/daemon

4. 그래도 안 될 경우?

  • settings.gradle 내용 살짝 바꿔 캐시 회피
  • 프로젝트 디렉토리 이름을 바꿔 새로 클론

🧠 Gradle & JDK & JVM 관계 요약

Gradle, JDK, JVM 개념도
  • JDK: Java 코드 작성, 컴파일, 실행 도구 모음
  • JVM: 자바 바이트코드를 실행하는 가상의 컴퓨터
  • Gradle: 빌드 자동화 도구 (JDK 위에서 동작)

결국 Gradle도 JVM 위에서 실행되기 때문에, 사용하는 JDK 버전과 호환성 문제가 발생할 수 있습니다.

✅ 정리

  • Gradle 8.1.1 + JDK 23 ❌ 충돌 발생
  • Gradle 8.1.1 + JDK 17 ✅ 안정적
  • Gradle 8.5 이상이면 JDK 23도 사용 가능

같은 문제를 겪는 분들은 JDK 버전이나 Gradle 버전을 꼭 함께 확인하세요! 저처럼 수 시간 삽질하지 마시고요... 😇

profile
나는 개발자입니다.

0개의 댓글