`
菜鸟级JAVA
  • 浏览: 96770 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

查看class文件是被jdk什么版本编译的

    博客分类:
  • java
阅读更多
package image;

import java.io.FileInputStream;

/**
 * 类名称:JavaVersionUtil
 * 类描述:
 * 创建人:luozhenxing 
 * 创建时间:2015-4-24 下午5:16:53
 * 修改人:
 * 修改时间:
 * 修改备注:
 * 
 * @version 1.0.0
 */
public class JavaVersionUtil {
	private static final String str = "C:/Users/Administrator/Desktop/Util.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]) << 8) + data[5];
	  int major_version = (((int) data[6]) << 8) + data[7];
	  System.out.println("版本号(version):" + major_version + "."
	    + minor_version);
	 }
}


转自:http://www.cnblogs.com/gladto/archive/2011/03/12/1982247.html
感谢作者
分享到:
评论

相关推荐

    jdk1.8class反编译

    在 JDK 1.8 版本中,开发者们有时需要查看已编译的`.class`文件的源代码,以便理解其内部工作原理或进行调试。这时,就需要用到反编译工具。反编译是从已编译的字节码文件(.class文件)还原出类似源代码的形式,...

    jdk1.5 jdk1.6 反编译 工具

    1. **支持jdk1.2 jdk1.3 jdk1.4 jdk1.5 jdk1.6**:这表明这个工具可以处理这些版本的Java编译后的字节码,意味着它可以打开并反编译这些版本的.class文件,帮助开发者查看对应时期的Java源代码。 2. **支持目录对...

    class反编译查看工具

    其中,"class反编译查看工具"是专门用于查看和理解Java字节码(.class文件)的工具,这类工具能够将Java的编译结果转换回源代码的形式,便于分析和学习。本文将详细介绍JD-GUI这款强大的Java类反编译工具及其功能。 ...

    三种class文件反编译工具

    在Java编程语言中,`.class`文件是Java字节码的载体,它是源代码经过编译后的结果。这些字节码文件通常不直接可读,因为它们是机器不可理解的二进制格式。然而,开发者有时需要查看这些字节码背后的源代码,这就要...

    jdk反编译软件

    Java反编译是Java开发中一个重要的辅助工具,它允许开发者查看和理解已编译的Class文件中的字节码,因为Java源代码在编译后会被转换为这种不可读的二进制格式。标题提到的"jdk反编译软件"正是针对这个需求而设计的,...

    jdk反编译工具

    JDK自带了一个简单的反编译工具——`javap`,它主要用于查看类文件的元数据,如方法签名、常量池等。但`javap`并不提供完整的源代码反编译功能,对于想要阅读类库源代码的开发者来说,它的能力有限。因此,我们需要...

    最新java反编译工具jad 支持jdk1.6

    Java反编译是将已编译的Java字节码(.class文件)转换回源代码的过程,以便开发者能够查看和理解这些编译后的代码。JAD(Java Decompiler)是一款著名的开源Java反编译工具,它能帮助程序员分析、理解和重构已编译的...

    Java的class反编译工具

    在Java编程环境中,源代码会被编译成字节码(.class文件),这些字节码是机器不可读的,但是可以由Java虚拟机(JVM)执行。然而,有时我们需要查看或分析这些编译后的类文件,这时候就需要借助反编译工具。 标题中...

    java jdk 反编译工具

    `jd-gui`是一个图形用户界面的应用程序,它允许开发者直接打开`.class`文件并实时查看反编译后的源代码。它不需要任何安装过程,只需解压下载的压缩包,然后运行相应的可执行文件,就能立即开始使用。这对于快速查看...

    java 类反编译工具支持JDK1.8

    标题提到的是一个针对 JDK 1.8 版本的 Java 反编译工具,这表明该工具兼容 Java 8 的字节码,能够在不拥有源代码的情况下查看和理解类文件的实现细节。描述中提到了作者在寻找可用的工具过程中遇到困难,最终找到并...

    java编译class文件

    `.class`文件是Java字节码,它可以在任何支持Java的平台上运行,这得益于Java的“一次编写,到处运行”(Write Once, Run Anywhere, WORA)特性。 标题“java编译class文件”涉及的核心知识点是Java的编译过程。Java...

    jad class文件的反编译软件

    Java应用程序在运行时通常以字节码(class文件)的形式存在,这些文件是二进制格式,人类无法直接阅读。为了理解class文件内部的代码逻辑,开发者常常会使用反编译工具,jad 就是其中之一。jad 是一个流行的Java字节...

    jdk1.8 + 反编译工具

    Java JDK 1.8是Java开发工具包的一个版本,它包含了Java编程语言的运行环境(JRE)和用于编译、调试以及管理Java应用程序的工具。这个版本的JDK引入了多个重要的新特性,比如Lambda表达式、Stream API、方法引用、...

    class编译工具windows.zip

    Class文件是Java源代码经过编译后的二进制文件,其中包含了Java类的结构信息,如类名、方法、变量等。这些信息以特定的字节码格式存储,使得Java具有跨平台的能力。Java虚拟机通过读取Class文件来运行程序。 二、...

    jdk双版本.zip

    标题中的“jdk双版本.zip”表明这是一个包含两个不同平台版本的Java Development Kit(JDK)的压缩文件。JDK是Java编程语言的核心组件,它提供了编译、调试和运行Java应用程序所需的所有工具和库。 首先,我们来看...

    编译java语言所用的JDKjdk1.8

    - 编译:使用`javac`命令将.java文件编译为.class文件。 - 运行:使用`java`命令执行主类,启动Java应用程序。 - 调试:使用IDE的调试功能或命令行工具进行程序调试。 - 打包与部署:使用`jar`命令打包应用程序...

    Beyond Compare反编译java class插件

    具体切换在双击打开class文件对比的时候选择编译方式为Java Class to source。一般会自动识别。 本工具不光能反编译java class文件,还有其他如office文件,不过实测效果不是很好,具体看导入时候的列表。

    输出JDK和CGLib动态代理产生的class文件.zip

    本压缩包文件提供了两个示例项目,分别展示了JDK动态代理和CGLib动态代理的实现,帮助我们理解这两种技术的工作原理以及它们生成的class文件结构。 首先,我们来详细了解JDK动态代理。JDK动态代理基于Java的接口...

    class文件编译器.zip

    在Java编程语言中,`class`文件是程序的二进制表示形式,它是Java源代码(`.java`文件)经过编译后的结果。这个压缩包`class文件编译器.zip`很可能包含了关于如何将Java源代码编译成`.class`文件的相关工具和信息。`...

    BeyondCompare支持java8的class反编译插件

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

Global site tag (gtag.js) - Google Analytics