首页 > 编程语言 >java 查看class文件的jdk版本的两种方式(编译版本)

java 查看class文件的jdk版本的两种方式(编译版本)

时间:2023-08-02 11:04:50浏览次数:41  
标签:00 java jdk 查看 34 版本 class

1.情景展示

有时候我们需要知道jar包里面class文件的jdk编译版本,来排查错误。

以上图为例,如何实现?

2.具体分析

将其中一个class文件解压出来,然后查看大致的jdk版本号。

3.解决方案

使用解压工具打开gridreport.jar,将Report.class解压到桌面。

方式一:使用文本编辑工具EditPlus

使用EditPlus打开该class文件,字符集选择16进制(Hex viewer)。

仅仅看第一行数据,前面8个字节CA FE BA BE 是固定的。

之后4个字节00 00 是次版本。

次版本后面的4个字节00 34  就是jdk的版本。

JDK版本与16进制对照关系如下:

JDK1.5      31
JDK1.6      32 
JDK1.7      33
JDK8         34

方式二:使用javap命令实现

切换到桌面。

运行以下命令

javap -v Report.class

我们只需要看major version的值是多少就可以了(它的值是十进制数字)。

jdk版本相应关系例如以下: 

HEX 十进制 jdk
2E 46 jdk1.2
2F 47 jdk1.3
30 48 jdk1.4
31 49 jdk1.5
32 50 jdk1.6
33 51 jdk1.7
34 52 jdk1.8
35 53 jdk9
36 54 jdk10
37 55 jdk11
38 56 jdk12
39 57 jdk13

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

标签:00,java,jdk,查看,34,版本,class
From: https://www.cnblogs.com/Marydon20170307/p/17600032.html

相关文章

  • Java空指针异常
    java是没有指针的,java的指针是指java的引用,空指针即为空引用,空指针异常即为【引用本身为空,却调用了方法】除去静态变量与静态方法,成员变量与方法都是属于对象的,只有在对象中才存在相对应的成员变量与方法,然后再通过对象去调用这些成员变量和方法......
  • Idea:新版本Idea底部工具栏Git中没有Local Changes
    在设置中,VersionControl——Commit中,将选中勾选取消即可,如下图:点击Git图标,LocalChanges已显示出来。 ......
  • ubuntu系统升级软件sudo apt upgrade后GPU崩溃报错,显示驱动版本不匹配——ubuntu系统
     ubuntu系统升级软件(sudoaptupgrade)后,GPU崩溃报错,查看系统日志: Aug206:25:02lcwtrsyslogd:[originsoftware="rsyslogd"swVersion="8.32.0"x-pid="2059"x-info="http://www.rsyslog.com"]rsyslogdwasHUPedAug207:17:01lcwtC......
  • JDK和JRE的区别
    1.JDK是什么?有哪些内容组成?JDK是lava开发工具包JVM虚拟机:Java程序运行的地方核心类库:Java已经写好的东西,我们可以直接用开发工具:javac、java、jdb、jhat2.JRE是什么?有哪些内容组成?JRE是]ava运行环境JVM、核心类库、运行工具3.JDK,JRE,JVM三者的包含关系......
  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: int
    执行mybatis的mapper方法时,报错了这个错。通过网上查找,发现了是JDK版本和oracle版本不一致导致的。(我直接从JDK1.8换成JDK11就可以了) 以下内容转自:FailedtoobtainJDBCConnection;nestedexceptionisjava.sql.SQLException:oracle.jdbc.OracleDriver_小沈同学_的博客-CS......
  • Java面试题 P40:数据库篇:MySql篇-用过分库分表吗?
            ......
  • java双环境安装
    0x00 前言在此之前已经有jdk1.8了,需要再配一个jdk17参考链接:https://www.jb51.net/article/278326.htm下载链接: https://www.oracle.com/java/technologies/downloads/#java17  0x01 安装忘截图了,无脑下一步,指定路径跟之前的jdk在同一目录下就行  0x02 环境变......
  • Java面试题 P37:数据库篇:MySql篇-事务-事务中的隔离性是如何保证的呢?
    锁:排它锁(如一个事务获取了一个数据行的排它锁,其他事务就不能再获取该行的其他锁),insertupdatedelete都是用了排它锁mvcc:多版本并发控制。你解释一下mvcc?           ......
  • nvidia显卡驱动中的cuda版本和实际安装的cuda库版本的关系
    1,CUDADriverVersion是跟nvidia的GPU驱动(nvidia-driver)绑定在一起的:你在终端通过命令更新下载驱动后,再执行nvidia-smi得到如下图中右上角显示的cuda版本,例如我的: 上图表明:我现在的驱动版本是440.95.01,可以支持<=10.2版本的cuda2,CUDARuntimeVersion是你自己在系统上安......
  • Java学习-3
    今天做了一个Java罗马数字转实际数字的题目,学习到了map的基本用法,以及调用时需要注意的一些事情。同时期间也学习了println的输出方法。classSolution{publicintromanToInt(Strings){Map<String,Integer>map=newHashMap<>();map.put("I",1);......