GalaxyPilot —— D.S


                  生命不熄,戰斗不止
          數據加載中……

          用javap查看編譯版本

          我們可以用javap命令查看class文件的編譯版本。
          比如對Worke.class使用javap命令:javap -verbose Worker
          我將看到Worker的反編譯結果。其中前幾行如下:
          Compiled from "Worker.java"
          public class com.teleca.robin.Worker extends java.lang.Thread
            SourceFile: "Worker.java"
            minor version: 0
            major version: 49
            Constant pool:
          上面的minor version: 0和major version: 49就是編譯Worke.class時使用的jdk編譯版本號。
          但是它并不是我們所熟悉的jdk版本號(比如jdk1.5)。
          不過我們可以把從 JDK 1.1 到 JDK 1.7 編譯器編譯出的 class 的默認 minor.major version 匯總下就知道對應關系了。
          JDK 編譯器版本target 參數十六進制 minor.major十進制 minor.major
          jdk1.1.8不能帶 target 參數00 03 00 2D45.3
          jdk1.2.2不帶(默認為 -target 1.1)00 03 00 2D45.3
          jdk1.2.2-target 1.200 00   00 2E46.0
          jdk1.3.1_19不帶(默認為 -target 1.1)00 03 00 2D45.3
          jdk1.3.1_19-target 1.300 00   00 2F47.0
          j2sdk1.4.2_10不帶(默認為 -target 1.2)00 00   00 2E46.0
          j2sdk1.4.2_10-target 1.400 00   00 3048.0
          jdk1.5.0_11不帶(默認為 -target 1.5)00 00   00 3149.0
          jdk1.5.0_11-target 1.4 -source 1.400 00   00 3048.0
          jdk1.6.0_01不帶(默認為 -target 1.6)00 00   00 3250.0
          jdk1.6.0_01-target 1.500 00   00 3149.0
          jdk1.6.0_01-target 1.4 -source 1.400 00   00 3048.0
          jdk1.7.0不帶(默認為 -target 1.6)00 00   00 3250.0
          jdk1.7.0-target 1.700 00   00 3351.0
          jdk1.7.0-target 1.4 -source 1.400 00   00 3048.0
          Apache Harmony 5.0M3不帶(默認為 -target 1.2)00 00   00 2E46.0
          Apache Harmony 5.0M3-target 1.400 00   00 3048.0
          注1:javac 有個 -target 參數,編譯時可以通過
          target參數來設置編譯時所使用的jdk版本。比如如果目標 JVM 是 1.3 的話,編譯選項就可以用 -target 1.3 -source 1.3 了。
          相應的如果使用 ant ,編譯時可以通過target參數來設置編譯時所使用的jdk版本。比如:
          <javac target="1.4" source="1.4" ............................/>
          注2:javac中source和target 的意義
          -source <版本>                              提供與指定版本的源兼容性
          -target <版本>                               生成特定 VM 版本的類文件
          source才是真正的指明代碼的兼容性,target則是指定了生成class的格式的版本號,即生成特定 VM 版本的類文件。

          posted on 2012-05-29 14:34 舵手 閱讀(1822) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 娄烦县| 宁强县| 革吉县| 兴隆县| 洞头县| 固阳县| 收藏| 阿拉善左旗| 南皮县| 安溪县| 彭泽县| 渝中区| 三河市| 丰城市| 靖宇县| 苏州市| 正镶白旗| 新乐市| 特克斯县| 南郑县| 电白县| 鱼台县| 柘荣县| 台中县| 乌兰县| 谷城县| 通辽市| 镇坪县| 宝应县| 大足县| 通化市| 县级市| 南涧| 郑州市| 淳化县| 林口县| 莱芜市| 湘潭市| 威远县| 高陵县| 东乌|