最近遇到一个问题,往一个应用中加入自己的class,老是报class版本不对,应该是我是用的Jdk和这个应用的jdk不一致导致的,所以,有什么办法可以得到class使用的jdk版本吗?ps:这个应用自带的jdk版本应该是比他们原先编译生成class的jdk版本要高级,因为我试过更换jdk为该应用自带的jdk,还是报class版本不对

解决方案 »

  1.   

    使用运行时系统类执行【javap -verbose classname】获得输出流,截获 minor.major 后的数字jdk1.5.0_11 48.0
    jdk1.6.0_01 50.0
    jdk1.7.0 51.0具体数字也会有出入,你到官方查查吧!有人喜欢把1.6的语法用1.5的包编译,那个是什么结果就说不准了。
      

  2.   

    使用 UE 打开 class 文件,第一行内容:00000000h: CA FE BA BE 00 00 00 32 00 A9 07 00 02 01 00 37前四个字节为固定的 CA FE BA BE ,接下来的四个字节为次版本号(0000)和主版本号(00032)。32:JDK1.6
    31:JDK1.5
    30:JDK1.4
    2F:JDK1.3 
      

  3.   

    升级JDK,或者重新用低版本的JDK编译。
      

  4.   

    cmd-->跳转到jdk的bin目录执行 java -version命令