해결된 질문
작성
·
273
0
https://drive.google.com/file/d/1BB9SitCiSG3ZyZ9G-U15W5IyIKKtjBeH/view?usp=drive_link
java.lang.IllegalArgumentException: Unable to instantiate org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector [org.mybatis.spring.boot.autoconfigure.MybatisDependsOnDatabaseInitializationDetector]
Caused by: java.lang.UnsupportedClassVersionError: org/mybatis/spring/boot/autoconfigure/MybatisDependsOnDatabaseInitializationDetector 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
버전을 변경한적이 없는데 버전 업그레이드 하라는거 같습니다. 어떻게 해야 하나요?
답변 2
1
안녕하세요. 양치잘하기님
소스코드를 보았는데요. 현재 소스코드는 스프링 부트 2.x를 사용하고 있습니다. 그런데 mybatis-spring-boot-starter는 3.0.3을 사용하고 있습니다.
강의 메뉴얼에 있는 다음 내용을 참고해서 mybatis-spring-boot-starter를 2.2.0으로 변경해주세요.
MyBatis 설정
mybatis-spring-boot-starter
라이브러리를 사용하면 MyBatis를 스프링과 통합하고, 설정도 아주 간단히 할 수 있다.
mybatis-spring-boot-starter
라이브러리를 사용해서 간단히 설정하는 방법을 알아보자.
build.gradle
에 다음 의존 관계를 추가한다.
//MyBatis 추가
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
* 참고로 뒤에 버전 정보가 붙는 이유는 스프링 부트가 버전을 관리해주는 공식 라이브러리가 아니기 때문이다. 스프링 부트가 버전을 관리해주는 경우 버전 정보를 붙이지 않아도 최적의 버전을 자동으로 찾아준다.
참고 - 스프링 부트 3.0 이상
스프링 부트 3.0 이상을 사용한다면 mybatis-spring-boot-starter
버전을 2.2.0 대신에 3.0.3을 사용해야 한다.
//MyBatis 스프링 부트 3.0 추가
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
양치잘하기님의 에러 메시지에 따르면, java.lang.UnsupportedClassVersionError
오류가 발생했습니다. 이 오류는 실행하려는 자바 클래스가 현재 시스템에 설치된 자바 버전보다 더 높은 버전으로 컴파일 되었다는 것을 의미합니다.
즉, 현재 시스템에는 Java 15가 설치되어 있으며, 실행하려는 프로그램(특히 MybatisDependsOnDatabaseInitializationDetector 클래스)은 Java 17로 컴파일 되었습니다.
해결 방법은 다음과 같습니다:
1. 시스템에 Java 17을 설치합니다. 자바 공식 웹사이트나 오픈JDK에서 Java 17을 다운로드하여 설치할 수 있습니다.
2. 환경 변수를 확인하여 JAVA_HOME이 새로 설치한 Java 17을 가리키고 있는지 확인합니다.
3. 커맨드 라인에서 java -version
을 실행하여 Java 17이 정상적으로 설치되었는지 확인합니다.
자바 버전 업그레이드 후에도 문제가 지속된다면, 추가적인 문제 상황이 있을 수 있으니, 상세한 오류 메시지나 로그를 통해 문제를 다시 진단해보시기 바랍니다.