`
sillycat
  • 浏览: 2489547 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

编译class文件的jdk版本

    博客分类:
  • JAVA
阅读更多
仿造网上搜索到的例子,写了个查看class文件的工具类,以后万一报错

[ERROR]20/10/2008 14:17:59,765 (org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/spring]): Error configuring application listener of class com.example.controller.ServiceInitializer
Exception: -Bad version number in .class file-
-31- java.lang.UnsupportedClassVersionError: Bad version number in .class file

就可以用这个工具检查一下

package com.sillycat.api.commons.utils;

import java.io.FileInputStream;

public class JavaVersionUtil {

private static final String str = "E:/book/rest/spring/WEB-INF/classes/com/example/business/local/TopicManagerImpl.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]) << + data[5];
   int major_version = (((int) data[6]) << + data[7];
   System.out.println("版本号(version):" + major_version + "."
     + minor_version);
}

}
分享到:
评论
4 楼 bisal 2011-03-10  
非常感谢您!
3 楼 sillycat 2011-03-04  
// 主版本号和次版本号码
   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);
2 楼 sillycat 2011-03-04  
// 主版本号和次版本号码
   int minor_version = (((int) data[4]) << + data[5];
   int major_version = (((int) data[6]) << + data[7];
   System.out.println("版本号(version):" + major_version + "."
     + minor_version);
1 楼 bisal 2011-03-04  
您好,请问“<<脸谱”这里实际<<后面是什么?谢谢!

相关推荐

    jdk1.8class反编译

    jdk1.8编译类文件反编译工具。使用方式:java -jar procyon-decompiler-0.5.30.jar ***.class -o c:\**

    jdk1.5 jdk1.6 反编译 工具

    支持jdk1.2 jdk1.3 jdk1.4 jdk1.5 jdk1.6 支持目录对目录 支持直接双击class文件看源代码

    Java的class反编译工具

    用于反编译class文件,直接打开里面的exe文件运行打开class文件即可实现反编译。

    JAVA反编译CLASS文件

    JAVA反编译CLASS文件,包括文档和所需的软件,在JDK1.3和JDK1.4上已经实现成功

    反编译JAVA的class文件的简单方法,附"文件分割器"完整源代码

    我将class文件FileSa.class和jad放在E盘根目录下; 打开“命令提示符”快捷键操作:WIN+R; 再依次如下几步: cmd 回车; cd /d E: 回车; jad -sjava FileSa.class 回车; 此时E盘目录下会生成一个FileSa....

    BeyondCompare支持java8的class反编译插件

    因本人使用的JDK1.8,测试可用,高版本JDK暂未测试。 使用步骤:beyond compare的菜单--工具(tools)--- 导入设置(import ...将jar包或class文件拖放对比的时候,在对比窗口上选择编译方式为Java Class to source。

    jad class文件的反编译软件

    jad class文件的反编译软件

    java jdk 反编译工具

    java jdk 反编译 将class文件反编译成java文件 不用安装 直接使用小程序 即可将.class文件反编译成.java文件

    eclipse反编译插件安装

    1.将jad.exe放到安装jdk的bin目录下 D:\xxxx\jdk1.6.0_45\bin 2.将net.sf.jadclipse_3.3.0.jar放到安装eclpse的plugins目录不上 D:\xxx\xxx\eclipse\plugins 3.在Eclipse的Windows——&gt; Perference——&gt;General-&gt;...

    class文件版本查看器

    闲暇时写的小东西,路过的可以看看.查看class文件编译时使用的jdk版本.没技术含量,纯粹为了查看方便,使用UltraEdit一样可以看16进制来换算.

    jdk反编译软件

    java反编译工具,方便查看class文件,

    JVM中编译Class、内存回收、多线程原理和使用

    JVM负责装载class文件并执行,因此,首先是JDK如何将Java代码编译为class文件、如何装载class文件及如何执行class,将源码编译为class文件的实现取决于各个JVM实现或各种源码编译器。class文件通常由类加载器...

    拖拽编译java及运行class批处理.rar

    1.安装好JDK运行环境,设置好必要的Windows环境变量,具体方法可自行百度。 2.把这两个批处理放到任意有 *.java 文件的目录。 3.拖拽单个 *.java 文件到下面批处理,是把 java 文件编译为 class 文件。 ...

    java反编译exe文件 java软件反编译

    JD-GUI不需要安装,直接单击运行,您可以对JAR、类文件进行反编译。 三、JDk是一款我们最经常见到的数据反编译工具,我们可以使用JDk来进行数据反义,大家可以;利用JDk来中的插件帮助我们的数据和应用信息,并且...

    java反编译工具及eclipse插件

     3、将jad反编译工具jad.exe放到jdk安装路径的bin目录下面,jadclipse_3.1.0.jar放到eclipse的安装目录下的plugins目录下。  4、启动eclipse,打开:Window-&gt;Preferences-&gt;Java-&gt;JadClipse.  Path to ...

    decomp反编译工具

    超好用的反编译工具,支持class文件jdk版本号查看

    eclipse/myeclipse 反编译插件 Eclipse Class Decompiler 2.10.0

    Eclipse Class Decompiler对JDK的最低要求为JDK1.6, 能反编译和debug各版本的Class文件,支持JDK8的Lambda语法,同时支持中文等非Ascii码字符集的解析,支持Eclipse 3.6及以上所有版本的Eclipse。 本插件支持...

    java_jdk反编译工具

    反编译JAVA.class文件,特别是在没有原码地情况 ,适时地进行反编译,可以看到相关地原码!

    JSunspot反编译小软件

    注:如果不想安装JDK,也可以从其它地方拷贝JDK安装目录下的文件到程序目录下的jre目录中。 2,运行于2000/XP/2003操作系统 b,如何进行安装与卸载 运行程序目录下这个程序Setup.exe进行安装和卸载。 2,使用 ...

    java类的反编译工具

    小颖JAVA源代码反编译专家V1.4终极版是个很好的工具,但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后的就无能为力了,但是可以下载JAD.EXE来逐个反编译 CLASS文件,不过如果碰到有几十个或几百个...

Global site tag (gtag.js) - Google Analytics