티스토리 뷰

출처 http://www.rgagnon.com/javadetails/java-0544.html


컴파일된 클래스 파일의 컴파일 버전을 확인하고 싶을 때가 있다. 이런 경우에는 컴파일된 파일의 포맷을 확인해서 버전을 확인할 수 있는데, 버전은 크게 major버전과 minor 버전으로 나뉜다.
major버전과 monor 버전에 따른 자바 플랫폼 차이
major  minor Java platform version
45       3           1.0
45       3           1.1
46       0           1.2
47       0           1.3
48       0           1.4
49       0           1.5
50       0           1.6
확인하는 방법은 간단한데, 헥스 에디터로 클래스 파일을 불러들인 후 아래와 같이 확인하면 된다.

"The first 4 bytes are a magic number, 0xCAFEBABe, to identify a valid class file then the next 2 bytes identify the class format version (major and minor)."
즉, 파일의 종류를 나타내는 처음 4바이트는 매직 넘버이고(자바 클래스의 경우 0xCAFEBABE), 다음 두 바이트가 바로 minor 버전과 major 버전이다. 따라서 아래 파일의 major 버전은 0x32 (=50) 이므로 1.6 버전으로 컴파일했음을 확인할 수 있다.

사용자 삽입 이미지

더 자세한 사항은 자바 클래스 파일 포맷 명세를 확인한다.
- 자바 클래스 파일 포맷 명세 : http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html

댓글