Java class 파일이 JDK 의 어떤 버전으로 컴파일 되었는지를 확인하는 방법은
다음의 두가지 방법이 존재한다.
1. javap 를 이용하는 방법
클래스 파일 디렉토리 위치에서 다음의 명령어를 통해 확인이 가능하다.
javap –verbose [클래스파일명(.class는 제외)] | find /N "version"
2. class 파일의 hex 를 직접 확인하는 방법
class 파일을 hex 값 보기가 가능한 편집기(울트라 에디트 등) 으로 열어서
다음을 확인한다.
-.minor version : 4~5번 인덱스의 hex 값을 10진수로 변환한 값
-.major version : 6~7번 인덱스의 hex 값을 10진수로 변환한 값
※ major/minor 버전 별 JDK 실제 배포 버전(7번 인덱스 값으로 구분했을 경우)
JDK 1.6 = hex 32(dec : 50)
JDK 1.5 = hex 31(dec : 49)
JDK 1.4 = hex 30(dec : 48)
JDK 1.3 = hex 2F(dec : 47)
JDK 1.2 = hex 2E(dec : 46)
위의 예의 경우 버전은 46.0 이다.
이 방법은 다음의 class 파일 구조를 설명한 문서에 기초한 방법이다.
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
u2 access_flags;
u2 this_class;
u2 super_class;
u2 interfaces_count;
u2 interfaces[interfaces_count];
u2 fields_count;
field_info fields[fields_count];
u2 methods_count;
method_info methods[methods_count];
u2 attributes_count;
attribute_info attributes[attributes_count];
}
(http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html)
※ major/minor 버전 별 JDK 실제 배포 버전
JDK 1.6 = hex 32(dec : 50)
JDK 1.5 = hex 31(dec : 49)
JDK 1.4 = hex 30(dec : 48)
JDK 1.3 = hex 2F(dec : 47)
JDK 1.2 = hex 2E(dec : 46)
- 출처 : http://lachesis76.blogspot.com/2010/12/java-class-jdk.html -
'JAVA & Open Framework' 카테고리의 다른 글
JAVA(DateTimeUtil.java) - 요일 체크 및 기타 요일관련 Class (0) | 2011.08.18 |
---|---|
JAVA - 공휴일 여부 체크 (1) | 2011.08.16 |
이클립스1개에 여러개의 JDK를 버젼별로 설정하기 (0) | 2011.06.07 |
PreparedStatement Query (0) | 2011.05.27 |
Java Collection (0) | 2011.05.25 |