`

CLASS版本检测

阅读更多
因为之前在试用jxl的时候,下载jexcelapi_2_6_12.zip运行报java.lang.UnsupportedClassVersionError,怀疑是jar的版本太高,但是通过MENIFEST.MF“Created-By: 11.0-b15 (Sun Microsystems Inc.)”这类信息,所以特编写一个类版本检测工具:
1、相关代码如下:
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class ClassVersionChecker {
	static Map<Integer, String> versionMap = new HashMap<Integer, String>();
	static {
		versionMap.put(Integer.valueOf(46), "1.2");
		versionMap.put(Integer.valueOf(47), "1.3");
		versionMap.put(Integer.valueOf(48), "1.4");
		versionMap.put(Integer.valueOf(49), "1.5");
		versionMap.put(Integer.valueOf(50), "1.6");
	}

	public static void main(String[] args) throws IOException {
		checkClassVersion("classes/Cell.class");
	}

	private static void checkClassVersion(String filename) throws IOException {
		DataInputStream in = new DataInputStream(new FileInputStream(filename));

		int magic = in.readInt();
		if (magic != 0xcafebabe) {
			System.out.println(filename + " is not a valid class!");
		}
		int minor = in.readUnsignedShort();
		int major = in.readUnsignedShort();
		System.out.println(filename + ": " + major + "." + minor + " jdk:" + versionMap.get(major));
		in.close();
	}



2、输出如下:

classes/Cell.class: 50.0 jdk:1.6



3、下面提供一份标准的对照表:

major  minor Java platform version
45       3           1.0
45       3           1.1
46       0           1.2
47       0           1.3
48       0           1.4
49       0           1.5
50       0           1.6
分享到:
评论

相关推荐

    class文件版本查看器

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

    .NET Framework 版本检测代码

    在开发过程中,有时我们需要检测目标计算机上安装的.NET Framework版本,以确保应用程序能够正常运行。本文将深入探讨如何通过代码来检测.NET Framework的版本。 首先,我们需要理解.NET Framework的版本体系。自...

    iPhone应用程序检测新版本

    在iOS开发中,确保应用程序能够及时检测到新版本并引导用户进行更新是非常重要的。这不仅可以提升用户体验,确保他们始终使用最新、最稳定的软件版本,同时也有助于开发者推广新功能和修复已知问题。"iPhone应用程序...

    class汉化工具 class汉化工具

    - 错误检查:检测并报告可能存在的翻译错误或格式问题。 7. **风险与挑战**:汉化过程可能引入潜在的问题,如字符串长度限制、编码问题、字符集兼容性等。此外,直接修改.class文件可能会导致兼容性问题,特别是当...

    ClassFinal-java class文件安全加密工具

    5. **许可验证**:为了防止非法复制和使用,ClassFinal可能会支持许可证验证机制,只有当检测到有效的许可证时,程序才会运行。这可以防止未经授权的复制和分发。 6. **运行时保护**:ClassFinal可能在运行时进行...

    YOLO 数据集:9种岩石检测【包含划分好的数据集、类别class文件、数据可视化脚本】

    项目包含:9种岩石检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为各种...

    YOLO 目标检测数据集:农作物害虫检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】

    项目包含:农作物害虫检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,...

    Web程序中的JRE版本检测及JNLP文件的直接打开

    本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...

    jquery检测屏幕宽度并自动添加class

    标题"jquery检测屏幕宽度并自动添加class"正是关于如何利用jQuery来判断用户设备的屏幕宽度,并据此动态地在HTML元素上添加或移除CSS类,以实现页面布局的自适应。 首先,我们需要理解jQuery的核心概念。jQuery简化...

    检测iOSApp版本更新

    在iOS应用开发中,定期检测并提示用户进行App版本更新是一项重要的功能,它能确保用户始终使用最新、最稳定、最安全的软件版本。本文将详细介绍如何在iOS中实现App版本检测以及设置强制更新策略。 首先,我们需要...

    YOLO 数据集:夜间车辆、行人检测(4类)【包含划分好的数据集、类别class文件、数据可视化脚本】

    数据为黑夜背景下的人群、车辆检测,保存按照YOLOV5文件夹保存,可直接用作yolo检测。 标注格式为:classes,x_centre、y_centre、w、h (yolo的相对坐标标注) 【类别】:人、自行车、汽车、狗(4类) 数据分为...

    Class文件反编译工具

    4. **逆向工程**:安全研究人员可能会用反编译器进行逆向工程,以了解软件的工作原理,检测潜在的安全漏洞。 提到的资源作者宋海康提供的这款工具,具有小巧且功能强大的特点,能够清晰地反编译出包括汉字在内的源...

    ClassGraph-超快速超轻量级并行化的Java类路径扫描程序

    ClassGraph兼容各种Java版本,包括Java 8及更高版本。最新版本classgraph-classgraph-77fb1ba代表了项目的持续发展和改进,可能包含了新的特性和修复的bug。 总的来说,ClassGraph是Java开发者工具箱中的一个强大...

    最新版本的Class类翻译器

    2. **兼容性提升**:新版本可能支持更多的Java版本,包括Java 8、9、10乃至最新的Java 17,确保对不同版本的`.class`文件都能进行有效解析。 3. **更全面的翻译能力**:翻译器可能能够处理更复杂的字节码结构,包括...

    目标检测数据集:工地安全头盔图像检测数据【VOC标注格式、class文件】

    目标检测数据集:工地安全头盔图像检测数据【VOC标注格式、class文件】,数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 【数据集详情】共5000张数据和对应的xml标注文件、包含头盔、...

    如何对Android的版本进行检测与更新

    ### 如何对Android的版本进行检测与更新 在Android应用开发过程中,为了确保用户能够使用最新版本的应用程序,实现版本检测与更新的功能至关重要。本文将详细介绍如何在Android应用中实现这一功能。 #### 一、检测...

    class反编译工具class反编译工具

    - **安全审计**:检测恶意代码或版权侵权。 3. **常见的Class反编译工具**: - **JD-GUI**:一个图形用户界面工具,可以直接打开.class文件查看源代码。 - **JAD**:Java反汇编器,可以将字节码转换为接近原始源...

    NTCIP Class A and Class C Class Profiles

    - 故障检测:检测并报告设备故障情况。 Class A 设备通常使用较为简单的网络结构,并且可能不具备复杂的安全特性。 ##### 2. Class C 概述 **Class C** 包括更复杂的设备,如高级交通信号控制器、交通管理系统等...

    stm32ram调试,classb认证

    4. **异常处理机制**:通过Class B认证,系统应具备对错误的识别和处理能力,例如当检测到RAM错误时,可以切换到备份RAM,或者记录错误日志以供分析。 5. **实现步骤**:开发过程中,需编写相应的自检代码,结合STM...

    Class比对及文本提取工具1.2

    3. 重复代码检测:通过类比对找出项目中的重复代码,减少冗余,提升代码质量。 4. 重构优化:在代码重构过程中,比对可以帮助确认修改是否正确,并发现潜在问题。 5. 故障排查:文本提取功能可用于快速定位日志中...

Global site tag (gtag.js) - Google Analytics