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 舵手 閱讀(1816) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 靖西县| 潼南县| 浙江省| 应城市| 突泉县| 宜黄县| 利川市| 呼图壁县| 怀柔区| 丰镇市| 平山县| 北安市| 铜川市| 蒲城县| 南丰县| 凤城市| 南岸区| 建始县| 巴林右旗| 灵寿县| 万源市| 江阴市| 盐边县| 昌图县| 潢川县| 毕节市| 额敏县| 洮南市| 沂南县| 岑溪市| 贵南县| 太保市| 澳门| 横山县| 仙桃市| 海南省| 永胜县| 正宁县| 建水县| 临清市| 富裕县|