새소식

2. 웹개발/Error 모음

[Tomcat] Unsupported major.minor version 51.0

  • -

에러로그


- 주요 에러 문구

org.apache.catalina.core.StandardWrapperValve invoke .... Insupported major.minor version 51.0 ....

 

- 개발환경

JDK  : jdk1.6.0_45

WAS : tomcat 7.0.82

 

 

발생원인


로컬에서 프로젝트 세팅 후 가동할 때 발생하는데 구글링을 하며 찾아보니 Java의 컴파일 버전과 실행 버전이 달라서 발생하는 에러라고 한다. 즉, 컴파일 버전보다 이하 버전에서 실행되었을 때 발생하는 에러이다.

 

- 발생 CASE

1. Tomcat6에서 JDK 1.7로 컴파일된 프로젝트를 실행하는 경우

2. JDK 1.7로 컴파일하고 JDK 1.6 버전이 기본인 되는 PC에서 실행했을 경우

 

위의 2가지 이유 외 실행하는 Java버전과 컴파일하는 JDK의 버전이 다른 환경에서 실행할 때 발생하는 것으로 확인된다.

 

지금 나의 개발 환경에서 발생한 원인은 컴파일 버전이 1.7인데, 실행은 jdk 1.6으로 실행하니 발생하는 것이다.

 

 

해결방법


프로젝트에 컴파일 버전이 1.6으로 맞춰져 있기 때문에 기존의 컴파일 된 버전인 1.7로 맞춰주려고 한다.

 

위의 이미지와 같이 해당 프로젝트에서 Alt + Enter을 눌러 Properties 팝업을 띄워 주고, 

Project Facets > Runtimes탭을 선택하여 항목을 확인해보자.

 

위와 같이 내가 설치한 Apache Tomcat 7.0 버전, 그리고 프로젝트 셋팅 jdk 1.6.0_45가 존재했다.

컴파일에 대한 jdk를 변경하기 위해 jdk1.7을 새로 추가해 준 후 Apply로 적용을 시켜주자.

 

 

jdk1.6으로 Runtimes가 되어 있을 때는 1.6까지 밖에 선택이 안되는데 변경 이후로는 1.7까지 가능할 것이다. 1.7로 선택을 해주자. 

 

이제 Java Compiler에 들어가서 Compile의 버전을 1.7로 변경해주자.

 

이렇게 까지만 하면 컴파일의 JDK버전과 JRE버전이 일치하지 않아 프로젝트에 빨간색 x표시가 나올것이다.

 

이제 Java Build Path에 들어가서 JRE System Library의 jre 버전을 수정해 주자.

 

이제 다시 프로젝트를 로컬로 가동시켜 보자. 처음에 발생한 에러문구는 사라지고 정상적으로 가동될 것이다.

 

기타 정보


뒤쪽 51.0 이라는 숫자는 에러가 나는 컴파일 버전(이클립스 버전) 이다.

 

version 57.0 ㅡ> 컴파일 버전 13

version 56.0 ㅡ> 컴파일 버전 12

version 55.0 ㅡ> 컴파일 버전 11

version 54.0 ㅡ> 컴파일 버전 10

version 53.0 ㅡ> 컴파일 버전 1.9

version 52.0 ㅡ> 컴파일 버전 1.8

version 51.0 ㅡ> 컴파일 버전 1.7

version 50.0 ㅡ> 컴파일 버전 1.6

version 49.0 ㅡ> 컴파일 버전 1.5

version 48.0 ㅡ> 컴파일 버전 1.4

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.