Exception in thread "main" java.lang.UnsupportedClassVersionError
UnsupportedClassVersionError
UnsupportedClassVersionError
는 Java 혹은 Kotlin 에서
실행 환경이 잘못 설정돼있을 때 발생할 수 있는 에러 중 하나이다.
해당 에러는 실행하고자 하는 class 파일 버전 과 프로젝트 JRE(자바 실행 환경) 가 호환되지 않을 때 발생한다.
간단히 설명하자면
각 JDK 버전마다 실행 가능한 class 파일의 최대 버전이 정해져있고
이 버전을 넘어서는 class 파일을 실행했을 때 발생한다.
보통 IDE 에서 처음 프로젝트를 생성할 때
JDK 버전을 수동으로 설정하고 프로젝트를 생성하면서 해당 에러가 발생할 수 있다.
해결 방법
이 경우 2가지 방법으로 해결이 가능하다.
1. 내 프로젝트에서 생성되는 class file 버전을 낮춘다
settings - build,execution,delpotyment - compiler - java compiler
에 들어가서 project bytecode version 을 낮추면 된다.
코틀린은 모듈 단위 설계가 가능한데
만약 특정 모듈의 버전만 따로 설정하고 싶다면 모듈 단위 build.gradle 파일에 들어가서
kotlin jvmToolChain
의 jdkVersion
을 수정해도 된다.
다만 위와 같은 해결 방법의 경우 코틀린 언어에서 제공하는 최신 기능 사용이 제한될 수도 있다.
2. JRE 버전을 높인다
이 경우는 이미 만들어져있는 class file 을 실행해야되는 상황에 적합하다.
IDE 상단 run 버튼 옆에 edit configuration 에 들어가서
JRE 에서 더 높은 버전의 JDK 를 선택하고 실행하면 된다.