반응형
java로 개발을 하다 보면 미처 신경을 못써서 개발환경의 jdk와 운영환경의 jdk가 다른 경우가 있는데, 기본적으로 java에서 하위 호환은 되지만, 상위 호환은 되지 않습니다.
예를 들어 java8로 컴파일된 class는 java 9에서 실행이 되지만, java 7에서는 실행이 되지 않습니다.
이와 같이 더 높은 버전의 java에서 컴파일 된 class 파일을 낮은 버전에서 실행하려고 할 경우 다음과 같은 에러가 발생합니다.
- java.lang.UnsupportedClassVersionError
- Unsupported major.minor version xx
보통은 내가 컴파일한 java버전을 알고 있을 경우도 있지만 어떤 이유로 class파일이 어떤 버전의 java로 컴파일되었는지 찾아야 할 경우가 있습니다.
이때 javap 명령어를 사용하여 알아낼 수 있습니다.
- java -verbose 경로
- java -v 경로
둘 다 같은 결과를 얻을 수 있습니다.
그런데 우리가 알고 있는 jdk 버전은 6, 7, 8 등인데 여기서는 55라고 표시가 되는데요
그렇다면 55는 우리가 알고 있는 java 버전 몇일까요?
java version 별 major version number
- Java 1.2 uses major version 46
- Java 1.3 uses major version 47
- Java 1.4 uses major version 48
- Java 5 uses major version 49
- Java 6 uses major version 50
- Java 7 uses major version 51
- Java 8 uses major version 52
- Java 9 uses major version 53
- Java 10 uses major version 54
- Java 11 uses major version 55
- Java 12 uses major version 56
- Java 13 uses major version 57
- Java 14 uses major version 58
- Java 15 uses major version 59
- Java 16 uses major version 60
참고 사이트
https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers
https://greatkim91.tistory.com/66
728x90
반응형
'웹 개발' 카테고리의 다른 글
SpringBoot 에서 hibernate.dialect 에러 발생. (로컬서버 실행 안되는 현상) (0) | 2021.07.04 |
---|---|
javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication (0) | 2021.06.04 |
Spring Boot java.lang.NoClassDefFoundError: javax/servlet/Filter (0) | 2021.05.16 |
spring에서 autowired 대신 생성자 주입을 사용해야 하는 이유 (0) | 2021.05.12 |
java] file path에서 파일명만 가져오는 방법 (0) | 2021.05.02 |