반응형
Java로 프로그램을 작성해서 다른 플랫폼으로 배포하는 경우 자주 발생하는 에러로 Java Unsupported major.minor version 52.0 에러가 있다. 톰 캣(Tomcat)이나 하둡 맵리듀스(MapReduce) 처럼 Java 프로그램을 작성하고 Jar 파일로 묶어서 전송후 실행하는 경우에 간혹 볼 수 있는 에러다.
요약하면 Java 버전이 맞지 않아서 생기는 문제다. Jar 파일을 생성한 빌드 환경에서의 JDK 버전이 실제 실행하는 환경에서의 JDK 버전보다 높아서 생기는 문제다. Java SE 8 (JDK 1.8)에서 빌드한 Jar 파일을 Java SE 7 (JDK 1.7)이 설치되어 있는 환경에서 실행하려고 하면 위와 같은 문제가 발생한다.
대체로 개발환경은 최신으로 맞춰서 개발하는 반면 실행환경은 기존 환경 그대로 사용할 때 이런 에러를 만나게 된다. (이 에러를 만나면 당황하지 말고 자바 버전을 확인하자)
참고로 에러 메시지 끝에 있는 52.0 이라는 숫자는 Jar 파일의 빌드 JDK 버전을 나타내는 숫자다. 숫자 별 자바 버전은 다음과 같다.
Java SE 13 = 57 (0x39hex)
Java SE 12 = 56 (0x38 hex)
Java SE 11 = 55 (0x37 hex)
Java SE 10 = 54 (0x36 hex)
Java SE 9 = 53 (0x35 hex)
Java SE 8 = 52 (0x34 hex)
Java SE 7 = 51 (0x33 hex)
Java SE 6.0 = 50 (0x32 hex)
Java SE 5.0 = 49 (0x31 hex)
JDK 1.4 = 48 (0x30 hex)
JDK 1.3 = 47 (0x2F hex)
JDK 1.2 = 46 (0x2E hex)
JDK 1.1 = 45 (0x2D hex)
이와 같은 문제가 발생하면 실행환경과 동일한 JDK 버전으로 빌드를 하던가 실행환경을 빌드 JDK 버전으로 올려야 한다.
반응형
댓글