Kotlin

(Kotlin) java.lang.unsupportedclassversionerror 애러 해결

너어디사니 2024. 4. 22. 16:41

금일 코틀린 프로젝트 생성 도중에 아래와 같은 애러가 발생하였다

java.lang.unsupportedclassversionerror: org/example/mainkt has been 
compiled by a more recent version of the java runtime (class file version 65.0),
this version of the java runtime only recognizes class file versions up to 62.0

 

- 찾아보니까 해당 애러는 최신 버전의 Java 런타임 버전으로 컴파일이 되었다는 애러였다

 

우선 내가 사용할 Java 버전은 18.. 생각해보니까 내가 예전에 코틀린 프로젝트 작업을 했을 때 가장 최신 버전의 Java22 버전을 썻던 것이 기억이 났다 

 

그래서 일단 버전 부터 수정을 해봤다

- 1. 설정 -> 빌드, 실행, 베포 -> 컴파일러 -> Java 컴파일러 -> 프로젝트 바이트 코드 버전 이 22로 세팅이 되어 있는 부분을 18로 수정을 했다

두번째로 프로젝트 구조에서 현재 프로젝트에 어떤 Java SDK 버전이 쓰이고 있는지 확인해봤다

2. 파일 -> 프로젝트 구조 -> 프로젝트 설정 -> 프로젝트 에서 Java SDK 버전을 17로 설정을 하여 18과 호환이 되도록 설정 및 언어 수준도 17로 맞춰서 18과 호환이 되도록 설정을 해줬다

일단 이런식으로 다 18과 호환되게끔 셋팅을 하고 다시 Main.kt를 실행해봤는데

 

java.lang.unsupportedclassversionerror: org/example/mainkt has been 
compiled by a more recent version of the java runtime (class file version 65.0),
this version of the java runtime only recognizes class file versions up to 62.0

 

이 애러가 또 발생하는 것이 아닌가;;;

 

그래서 다른 생각을 하게 되었는데 바로 컴파일러의 설정이 잘못되었다고 생각했다

 

컴파일러가 잘못되었다고 생각한 이유는 내가 평소에 쓰던 Java JDK는 Oracle 기반인 컴파일러이다

 

그런데 이번에 사용하는 컴파일러는 Eclipse Temurin 기반의 Java18 이었다

 

따라서

 

3.  설정 -> 빌드, 실행, 베포 -> 컴파일러 -> Java 컴파일러 -> 컴파일러 사용을 Javac -> Eclipse로 변경을 해봤다

 

 

이렇게 설정을 하니 정상 작동 확인되었다

 

오늘의 결론

1. Java JDK를 맞는 JDK를 쓰고 있는지 잘 확인해보자(Intellij 하고 프로젝트 구조 전부 확인해봐야 한다)

2. JDK에 맞는 컴파일러를 쓰고 있는지 확인해보자

 

이상이다