[Springboot] java.lang.UnsupportedClassVersionError

    에러 메세지

    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication 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 59.0
    	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
    	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:825)
    	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723)
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646)
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
    	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

     

     

    스프링부트(Springboot)로 프로젝트로 생성하였고, 간단한 프로그램을 짠 후 실행을 시켰는데 위와 같은 에러가 발생하였다. 

     

    Springboot에서 java.lang.UnsupportedClassVersionError


    해결 방법

    자바(Java) 버전 문제로 보여서 Maven 파일인 pom.xml을 확인하니 자바 버전이 다음과 같이 최신 버전으로 되어 있었다.

    <properties>
    	<java.version>17</java.version>
    </properties>

     

     

     

    아무래도 Starter를 설정할 때, Java 버전 설정이 잘못된 것으로 판단되어 아래와 같이 1.8로 변경하였다.

    <properties>
    	<java.version>1.8</java.version>
    </properties>

     

    하지만 문제가 잡히지 않았고, 아무래도 최신 스프링 버전이 더이상 8버전과 호환이 되지 않는 것으로 판단하여 스프링 버전을 낮추게 되었다. 그러고 보니 자바의 버전을 분명 8로 설정하였는데 강제로 17로 되는 것을 보면 스프링의 최신 버전은 최신 Java만 제대로 작동되는 것 같았다.

     

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!-- <version>3.0.1</version> -->
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

     

    최종적으로 위와 같이 spring-boot-starter-parent를 3.0.1 -> 2.6.3으로 변경하니 정상적으로 스프링부트가 작동되는 것을 확인하였다.

    반응형

    댓글

    Designed by JB FACTORY