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
感谢作者
分享到:
相关推荐
在 JDK 1.8 版本中,开发者们有时需要查看已编译的`.class`文件的源代码,以便理解其内部工作原理或进行调试。这时,就需要用到反编译工具。反编译是从已编译的字节码文件(.class文件)还原出类似源代码的形式,...
1. **支持jdk1.2 jdk1.3 jdk1.4 jdk1.5 jdk1.6**:这表明这个工具可以处理这些版本的Java编译后的字节码,意味着它可以打开并反编译这些版本的.class文件,帮助开发者查看对应时期的Java源代码。 2. **支持目录对...
其中,"class反编译查看工具"是专门用于查看和理解Java字节码(.class文件)的工具,这类工具能够将Java的编译结果转换回源代码的形式,便于分析和学习。本文将详细介绍JD-GUI这款强大的Java类反编译工具及其功能。 ...
在Java编程语言中,`.class`文件是Java字节码的载体,它是源代码经过编译后的结果。这些字节码文件通常不直接可读,因为它们是机器不可理解的二进制格式。然而,开发者有时需要查看这些字节码背后的源代码,这就要...
Java反编译是Java开发中一个重要的辅助工具,它允许开发者查看和理解已编译的Class文件中的字节码,因为Java源代码在编译后会被转换为这种不可读的二进制格式。标题提到的"jdk反编译软件"正是针对这个需求而设计的,...
JDK自带了一个简单的反编译工具——`javap`,它主要用于查看类文件的元数据,如方法签名、常量池等。但`javap`并不提供完整的源代码反编译功能,对于想要阅读类库源代码的开发者来说,它的能力有限。因此,我们需要...
Java反编译是将已编译的Java字节码(.class文件)转换回源代码的过程,以便开发者能够查看和理解这些编译后的代码。JAD(Java Decompiler)是一款著名的开源Java反编译工具,它能帮助程序员分析、理解和重构已编译的...
在Java编程环境中,源代码会被编译成字节码(.class文件),这些字节码是机器不可读的,但是可以由Java虚拟机(JVM)执行。然而,有时我们需要查看或分析这些编译后的类文件,这时候就需要借助反编译工具。 标题中...
`jd-gui`是一个图形用户界面的应用程序,它允许开发者直接打开`.class`文件并实时查看反编译后的源代码。它不需要任何安装过程,只需解压下载的压缩包,然后运行相应的可执行文件,就能立即开始使用。这对于快速查看...
标题提到的是一个针对 JDK 1.8 版本的 Java 反编译工具,这表明该工具兼容 Java 8 的字节码,能够在不拥有源代码的情况下查看和理解类文件的实现细节。描述中提到了作者在寻找可用的工具过程中遇到困难,最终找到并...
`.class`文件是Java字节码,它可以在任何支持Java的平台上运行,这得益于Java的“一次编写,到处运行”(Write Once, Run Anywhere, WORA)特性。 标题“java编译class文件”涉及的核心知识点是Java的编译过程。Java...
Java应用程序在运行时通常以字节码(class文件)的形式存在,这些文件是二进制格式,人类无法直接阅读。为了理解class文件内部的代码逻辑,开发者常常会使用反编译工具,jad 就是其中之一。jad 是一个流行的Java字节...
Java JDK 1.8是Java开发工具包的一个版本,它包含了Java编程语言的运行环境(JRE)和用于编译、调试以及管理Java应用程序的工具。这个版本的JDK引入了多个重要的新特性,比如Lambda表达式、Stream API、方法引用、...
Class文件是Java源代码经过编译后的二进制文件,其中包含了Java类的结构信息,如类名、方法、变量等。这些信息以特定的字节码格式存储,使得Java具有跨平台的能力。Java虚拟机通过读取Class文件来运行程序。 二、...
标题中的“jdk双版本.zip”表明这是一个包含两个不同平台版本的Java Development Kit(JDK)的压缩文件。JDK是Java编程语言的核心组件,它提供了编译、调试和运行Java应用程序所需的所有工具和库。 首先,我们来看...
- 编译:使用`javac`命令将.java文件编译为.class文件。 - 运行:使用`java`命令执行主类,启动Java应用程序。 - 调试:使用IDE的调试功能或命令行工具进行程序调试。 - 打包与部署:使用`jar`命令打包应用程序...
具体切换在双击打开class文件对比的时候选择编译方式为Java Class to source。一般会自动识别。 本工具不光能反编译java class文件,还有其他如office文件,不过实测效果不是很好,具体看导入时候的列表。
本压缩包文件提供了两个示例项目,分别展示了JDK动态代理和CGLib动态代理的实现,帮助我们理解这两种技术的工作原理以及它们生成的class文件结构。 首先,我们来详细了解JDK动态代理。JDK动态代理基于Java的接口...
在Java编程语言中,`class`文件是程序的二进制表示形式,它是Java源代码(`.java`文件)经过编译后的结果。这个压缩包`class文件编译器.zip`很可能包含了关于如何将Java源代码编译成`.class`文件的相关工具和信息。`...
因本人使用的JDK1.8,测试可用,高版本JDK暂未测试。 使用步骤:beyond compare的菜单--工具(tools)--- 导入设置(import ...将jar包或class文件拖放对比的时候,在对比窗口上选择编译方式为Java Class to source。