리나 Dev토리

Intellij - terminal창에서 java -jar 실행시 UnsupportedClassVersionError 버전 에러 본문

SpringBoot

Intellij - terminal창에서 java -jar 실행시 UnsupportedClassVersionError 버전 에러

리나lina 2022. 12. 13. 09:43

인프런에서 실전 스프링부트 & JPA 활용1편

- JPA와 DB 설정, 동작확인을 들으면서

 

Intellij - Terminal 탭 - jar 실행

java -jar jpashop-0.0.1-SNAPSHOT.jar

jar 빌드해서 실행을 해보는데

 

Exception in thread "main" java.lang.UnsupportedClassVersionError: 
jpabook/jpashop/MyjpashopApplication has been compiled 
by a more recent version of the Java Runtime (class file version 55.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0

 

UnsupportedClassVersionError 에러메세지가 떴다.

지원하지 않는 버전

인프런 질문에 찾아보니 OS 버전에 문제가 있다는 걸 알게 되었다. 

55 = 자바 11  

52 = 자바 8

 

그래서 자바 8은 삭제하라고 하였는데, 자바 8도 유지하면서 11로 수정하고 싶어서 

 

Intellij - File - Project Structure

file메뉴 project structure 에 들어가보니

project 탭 등에는 java 11이 맞게 되어있었고

SDKs 탭에서 1.8로 되어있어서 11로 수정하였다.

cmd에서 테스트해보니

java -version   >> 1.8로 나왔다 

환경변수

내 PC - 우클릭 - 속성 - 고급 시스템 설정 - 환경변수에 들어가 보았다.

JAVA_HOME

시스템 변수에 JAVA_HOME이 java 8로 되어있었다.

 

jdkzulu 차이가 뭔가 궁금해서 찾아보니

oracle jdk가 2019년부터 유료화되어서, 

zulu는 무료인 Open JDK 기반의 JDK이다.

 

JAVA_HOME 를 편집 누르고

C:\Program Files\Java\jdk-11.0.14 

로 변경해주었다.

 

PATH

PATH에서는 들어가보니

zulu 8이랑 JAVA_HOME 상대경로 - 2개가 설정되어 있었다. 

그래서 맨 위에 zulu 8은 삭제해주었다. 

 

상대경로는 JAVA_HOME에 설정한 java11 경로에 bin 폴더로 설정해준 것이다.

 

CMD에서도 정상적으로 11 버전이 나왔다.

Intellij

다시 intellij로 돌아가서

 

다시 빌드하고, jar를 실행해보았는데 안되었다.

찾아보니 .idea 폴더를 삭제하고 다시 프로젝트를 열으라고 하였다.

 

.idea 폴더 : 프로젝트 별로 intellij의 IDE 옵션을 저장하는 폴더

 

.idea 삭제 후 다시 jar를 명령어로 실행해보니 잘 실행되었다~!!

 

 

참고 : https://www.inflearn.com/questions/53693

zulu https://pythontoomuchinformation.tistory.com/451

JAVA_HOME, PATH https://hyoje420.tistory.com/7

.idea https://simple-ing.tistory.com/44

 

Comments