블로그 이미지

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
2013. 7. 2. 19:49 JAVA언어

상위 버전의 JVM에서 컴파일된 클래스를 하위 버전의 JVM에 실행시킬 경우

java.lang.UnsupportedClassVersionError 가 발생을 한다.

(물론 하위버전의 JVM에서 컴파일된 클래스는 상위버전의 JVM에 실행됨)

 

1. JDK별 Java Class Version

    JDK 1.6 => 50.0  (32H)
    JDK 1.5 => 49.0  (31H)
    JDK 1.4 => 48.0  (30H)
    JDK 1.3 => 47.0  (2fH)

 

   참고로 JDK 1.4.2 (다른 버전의 경우는?) 에서 컴파일된 클래스의 경우는 호환성 유지를 위해

   Class Version이 46 (2eH)으로 표시됨

 

2. Class파일의 버전 확인 방법 (Hex Editor로 확인)

    UltraEditor등의 Hex Editor를 이용하여 클래스파일을 직접 확인

 

    00000000h: CA FE BA BE 00 00 00 31 00 69 0A 00 21 00 2E 0A

 

    - CA FE BA BE : Java Class라는 Magic Number

    - 31: Java Class Version (10진수로 49 -> JDK 1.5)  

   

3. Class파일의 버전 확인 방법 (javap 로 확인)

   JDK의 javap 커맨드를 이용하여 major version 확인

 

   C:\>javap -verbose test
   Compiled from "test.java"
   class test extends java.lang.Object
      SourceFile: "test.java"
      minor version: 0
      major version: 49
      Constant pool:

 

http://ecspecialist.tistory.com/entry/Java-Class-%EB%B2%84%EC%A0%84-%ED%99%95%EC%9D%B8-%EB%B0%A9%EB%B2%95

에서 펌

'JAVA언어' 카테고리의 다른 글

자바 예외 String으로 저장  (0) 2016.02.03
web.xml 에 context-param에값넣고 빼오기  (0) 2015.02.09
File 전송, io  (0) 2012.06.28
jstl 설정방법  (0) 2012.04.09
java 7의 기능 모음  (1) 2012.03.07
posted by 천상의날개