class 파일이 jdk의 어떤 버전으로 컴파일되었는지 보기


package image;

import java.io.FileInputStream;

/**
 *    :JavaVersionUtil
 *    :
 *    :luozhenxing 
 *     :2015-4-24   5:16:53
 *    :
 *     :
 *     :
 * 
 * @version 1.0.0
 */
public class JavaVersionUtil {
	private static final String str = "C:/Users/Administrator/Desktop/Util.class";

	 //      :
	 // 5.0
	 //    (version):49.0
	 // 6.0
	 //    (version):50.0
	 // 1.4
	 //    (version):46.0
	 // 1.3
	 //    (version):45.3

	 public static void main(String args[]) {
	  try {
	   //       ,         First.class
	   FileInputStream fis = new FileInputStream(str);
	   int length = fis.available();
	   //     
	   byte[] data = new byte[length];
	   //          
	   fis.read(data);
	   //     
	   fis.close();
	   //       
	   parseFile(data);
	  } catch (Exception e) {
	   System.out.println(e);
	  }
	 }

	 private static void parseFile(byte[] data) {
	  //     
	  System.out.print("  (magic):0x");
	  System.out.print(Integer.toHexString(data[0]).substring(6)
	    .toUpperCase());
	  System.out.print(Integer.toHexString(data[1]).substring(6)
	    .toUpperCase());
	  System.out.print(Integer.toHexString(data[2]).substring(6)
	    .toUpperCase());
	  System.out.println(Integer.toHexString(data[3]).substring(6)
	    .toUpperCase());
	  //           
	  int minor_version = (((int) data[4]) << 8) + data[5];
	  int major_version = (((int) data[6]) << 8) + data[7];
	  System.out.println("   (version):" + major_version + "."
	    + minor_version);
	 }
}


다음으로 이동:http://www.cnblogs.com/gladto/archive/2011/03/12/1982247.html
저자에게 감사하다

좋은 웹페이지 즐겨찾기