에러 해결 및 이슈 공유

Spring Boot import jar in Pox.xml dependency Error

하나의묵 2023. 8. 11. 18:59

문제상황

 

특정 기능을 사용하기위해 jar파일을 사용하는데 pom.xml에 dependency를 추가하고, 도커이미지를 빌드했을 때

정상적으로 만들어지지 않고 에러가 발생하였습니다.

 

특히 에러 중 class file has wrong version 55.0, should be 52.0 부분에 집중하여 방법을 찾았습니다.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile
		(default-compile) on project XXXBackendServer: Compilation failure
[ERROR] /d:/XXX.java:[20,29] cannot access org.XXX
[ERROR]   bad class file: C:\Users\chw\XXX.jar(XXX/Bundle.class)
[ERROR]     class file has wrong version 55.0, should be 52.0
[ERROR]     Please remove or make sure it appears in the correct subdirectory of the classpath.
[ERROR]

 

해결 시도

 

해당 에러를 찾아보면 jar를 만들 때 사용된 java 버젼과 현재 jar를 추가하고자하는 프로젝트에서 사용하는

java버젼이 달라서 발생하는 문제 라고 합니다.

 

1. 로그를 보면 version 55.0, 52.0이 있는데 이 버젼이 무엇인가 찾아보니 자바는 버젼별로

메이저 버전이라는 것을 따로 가지고 있었는데,  로그에서 나타나는 버전은 메이저 버전을 뜻 하고있었습니다.

자바 버젼별 메이저 정보는 아래 블로그를 참고하였습니다.

 

https://yjh5369.tistory.com/entry/class-파일의-javajdk-버전-확인하는-방법2

 

class 파일의 java(jdk) 버전 확인하는 방법

java로 개발을 하다 보면 미처 신경을 못써서 개발환경의 jdk와 운영환경의 jdk가 다른 경우가 있는데, 기본적으로 java에서 하위 호환은 되지만, 상위 호환은 되지 않습니다. 예를 들어 java8로 컴파

yjh5369.tistory.com

 

2. 로그내용을 확인해보면 현재 import한 jar 파일은 55.0 버젼 즉 JAVA 11에서 만들어졌는데,

현재 너희 프로젝트는 JAVA 52.0 즉 JAVA 8을 통해 구동하기 때문에 맞지 않는다는 에러였습니다.

 

3. 현재 프로젝트의 pom.xml에 최상단에서 스프링 부트의 버젼을 확인했을 때 아래오 같이 2.1.4를 사용하고있었는데

<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.4.RELEASE</version>

 

4. 새로 추가하려는 jar파일관련 라이브러리의 공식 깃허브를 가보니 

위와 같이 자바 버젼을 11이상 사용해야 한다고 명시되어있었습니다.

 

 

해결 방법

 

따라서 pom.xml에 dependency를 추가할 때 작성하는 version을 JAVA 8에 호환되는 버젼으로 변경하였더니 해결

되었습니다.