JBOSS 點滴

          豐豐的博客

          導航

          <2009年7月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          統計

          公告

          我想成功,在老之前!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          blogjava

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          通過class文件,看版本

          import java.io.FileInputStream;

          public class ParseClassFile {

              public static void main(String args[]) {

                  try {

                      // 讀取文件數據,文件是當前目錄下的First.class

                      FileInputStream fis = new FileInputStream("e:/logout_jsp.class");

                      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);

              }

          }

           

          運行:

          E:\>javac ParseClassFile.java

          E:\>java  ParseClassFile
          魔數(magic):0xCAFEBABE
          版本號(version):48.0
          48代表JDK1.5.0

          posted on 2009-07-16 11:25 半導體 閱讀(383) 評論(0)  編輯  收藏 所屬分類: Eclipse

          主站蜘蛛池模板: 宁德市| 长白| 秭归县| 虎林市| 阿拉善右旗| 上虞市| 朔州市| 罗田县| 涞水县| 建始县| 岫岩| 绥中县| 商水县| 疏附县| 巴彦县| 焦作市| 新化县| 美姑县| 长春市| 板桥市| 墨竹工卡县| 台南县| 绵竹市| 宾阳县| 固镇县| 塔城市| 天全县| 进贤县| 福州市| 财经| 西贡区| 淅川县| 五原县| 浦城县| 浦东新区| 延长县| 河北区| 海丰县| 喜德县| 名山县| 民和|