트러블 슈팅

[Java]UnsupportedClassVersionError 해결하기(JDK 8로 다시 컴파일하는 방법)

kchs0529 2025. 3. 18. 15:10

1. 현상

이전에 자바를 공부하기 위해 만들었던 프로젝트의 java 파일을 실행했더니 UnsupportedClassVersionError가 나오며 실행되지 않음
기존에는 JDK 17에서 개발했으나, 현재 JDK 8을 사용하는 프로젝트에서 실행했더니 오류 발생

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/drimsys/classpractice/RandomExample 
has been compiled by a more recent version of the Java Runtime (class file version 61.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

2. 원인

UnsupportedClassVersionError : 컴파일된 클래스 파일의 버전이 실행 중인 Java Runtime Environment (JRE) 버전과 호환되지 않을 때 발생한다.

  • class file version 61.0 → Java 17에서 컴파일된 코드
  • this version of the Java Runtime only recognizes class file versions up to 52.0 → 현재 실행 중인 JRE는 Java 8까지만 지원

📌즉, JDK 17에서 개발한 코드를 JDK 8 환경에서 실행하려 해서 생긴 문제

 

💡 현재 사용 중인 JDK/JRE 버전이 맞는지 확인하려면?

java -version   # 실행 중인 JRE 버전 확인
javac -version  # 사용 중인 JDK 버전 확인

3. 해결방법

Java 버전 일치시키기 위해 jdk 8 버젼으로 다시 컴파일을 진행하면 된다.

1. 프로젝트 우클릭 → Properties → Java Build Path → 버전이 맞는지 확인

2. 프로젝트 우클릭 → Properties → Java Compiler → Compiler compliance level을 1.8로 설정 → Apply and close

3. 컴파일러 세팅이 변경됐다고 뜨면 yes를 눌러 프로젝트를 컴파일

해결완료!