“查看 Java .class 文件版本”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第87行: 第87行:
  
 
=== 使用 javap 查看 .class 文件的版本 ===
 
=== 使用 javap 查看 .class 文件的版本 ===
 +
比如使用 Java SE 8 编译  Sample.java 后得到的 Sample.class 文件,
 +
 +
用 javap 命令查看 Sample.class <syntaxhighlight lang="powershell">
 +
C:\Users\Administrator\IdeaProjects\test-springboot\target\classes\org\example>javap -verbose Sample
 +
警告: 二进制文件Sample包含org.example.Sample
 +
Classfile /C:/Users/Administrator/IdeaProjects/test-springboot/target/classes/org/example/Sample.class
 +
  Last modified 2023-2-1; size 582 bytes
 +
  MD5 checksum 43f97b7f92af266d68d897e33e0481cf
 +
  Compiled from "Sample.java"
 +
public class org.example.Sample
 +
  minor version: 0
 +
  major version: 52
 +
  flags: ACC_PUBLIC, ACC_SUPER
 +
Constant pool:
 +
……
 +
</syntaxhighlight>其中 “major version: 52”对应上表就是 Java SE 8

2023年2月1日 (三) 10:19的版本

https://www.baeldung.com/java-find-class-version

编译 Java 文件时,会生成一个 .class 文件。

在某些情况下,我们需要找到编译后的类文件的 Java 发布版本。

每个 Java 主要版本为其生成的 .class 文件分配一个主要版本。

在此表中,我们将 .class 的主版本号映射到引入该类版本的 JDK 版本,并显示该版本号的十六进制表示形式:

Java Release Class Major Version Hex
Java SE 18 62 003e
Java SE 17 61 003d
Java SE 16 60 003c
Java SE 15 59 003b
Java SE 14 58 003a
Java SE 13 57 0039
Java SE 12 56 0038
Java SE 11 55 0037
Java SE 10 54 0036
Java SE 9 53 0035
Java SE 8 52 0034
Java SE 7 51 0033
Java SE 6 50 0032
Java SE 5 49 0031
JDK 1.4 48 0030
JDK 1.3 47 002f
JDK 1.2 46 002e
JDK 1.1 45 002d

使用 javap 查看 .class 文件的版本

比如使用 Java SE 8 编译 Sample.java 后得到的 Sample.class 文件,

用 javap 命令查看 Sample.class

C:\Users\Administrator\IdeaProjects\test-springboot\target\classes\org\example>javap -verbose Sample
警告: 二进制文件Sample包含org.example.Sample
Classfile /C:/Users/Administrator/IdeaProjects/test-springboot/target/classes/org/example/Sample.class
  Last modified 2023-2-1; size 582 bytes
  MD5 checksum 43f97b7f92af266d68d897e33e0481cf
  Compiled from "Sample.java"
public class org.example.Sample
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
……

其中 “major version: 52”对应上表就是 Java SE 8