새로운 프로젝트를 스프링 부트 3.0.4 버전으로 만들어서 실행을 하니 다음과 같은 오류가 발생했습니다.
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 60.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at com.example.demo.SpringVueApplication.main(SpringVueApplication.java:10)
Spring 6버전과 Spring Boot 3버전부터는 Java 17기반으로 변경되었습니다.
저의 PC에 설치되어 있는 JDK는 16이기 때문에 해당 오류가 발생하게 되었습니다.
SpringBoot 2.X -> 3.X
Spring 5.X -> 6.X
이외에도 위와 같이 버전이 바뀌면서 달라지는 점이 많은데 궁금한 부분은 다음 글을 참고해주세요.
[Spring] Spring 6.0 과 Spring Boot 3.0에는 뭐가 달라질까 - tistory
저의 PC에 설치되어 있는 JDK는 16이기 때문에 해결 방법은 2가지가 있습니다.
Spring Boot 2.X에서 주의할 점은 JDK 8 이상의 JDK가 PC에 설치되어 있어야 합니다.
현재 저의 프로젝트는 maven을 사용하고 있기 때문에 maven 기반으로 설명을 드리겠습니다. 만약 gradle을 사용하신다면 다음 글을 참고해주세요.
[SpringBoot] 스프링부트 버전 변경 / 버전 다운그레이드
pom.xml로 들어가서 spring boot와 java 버전을 변경해 줍니다.
java는 16을 사용하고 spring boot의 버전은 2.7.3을 사용하도록 변경했습니다.
이제 프로젝트를 업데이트하고 시작하면 정상 작동하는 것을 확인할 수 있습니다.
다음 링크를 통해서 JDK 17을 설치합니다.
https://www.oracle.com/java/technologies/downloads/#jdk17-windows
JDK 17을 설치한 bin 폴더로 환경 변수를 설정합니다.
JDK 설정 방법을 모르신다면 다음 링크를 통해서 자세한 내용을 확인해보세요.
[Java] 자바 버전 변경하는 방법 ( JDK 8 -> JDK 17) - 코딩팩토리
이제 프로젝트에 버전을 바꿔주어야 합니다. 변경 방법은 다음 링크로 가서 확인해주세요.
[이클립스] 프로젝트 자바버전 바꾸기!
이제 제대로 실행되는 것을 확인할 수 있습니다.
만약 위의 링크를 따라서 변경하는 도중에 다음과 같이 JDK 16만 나오고 17이 드롭박스에 나오지 않는다면 이클립스 버전을 업데이트 해주면 해결됩니다.
기존 이클립스를 업데이트하거나 기존 이클립스를 삭제하고 새 버전으로 설치할 수 있습니다. 저는 기존 이클립스를 업데이트하지 않고 삭제하고 새 버전으로 설치했습니다.
새 버전을 설치하면 다음과 같이 17이 보이는 것을 확인할 수 있습니다.
기존 이클립스의 버전 업그레이드/다운그레이드 하는 법을 자세히 보고 싶다면 다음 링크에서 확인해주세요
[Eclipse] 이클립스 버전 업그레이드/다운그레이드
저는 업그레이드를 시도하다가 꼬인 오류가 너무 많아서 그냥 삭제하고 재설치했습니다.
이클립스 마켓플레이스에서 Sts를 받는데 not found
라면서 안받아 지는 경우가 있습니다.
해당 경우에는 다음과 같이 Help > Install New Software... 로 들어갑니다.
이제 다음 url을 Work with:
에 넣어주고 전부 선택한 후에 설치해줍니다.
https://download.eclipse.org/mylyn/releases/latest/
이제 정상적으로 Sts를 받을 수 있습니다.
An internal error occurred during: "Updating Maven Project". 'org.apache.maven.project.MavenProject org.eclipse.m2e.core.project.configurator.ProjectConfigurationRequest.getMavenProject()'
만약 해당 오류가 발생한다면 다음과 같이 해결할 수 있습니다.
1. 이클립스 종료
2. 프로젝트 폴더로 이동해서 .metadata
폴더 제거
3. 이클립스를 다시 킴
4. 프로젝트를 수동으로 import 해줌.
5. 정상 작동확인