查看 Class 文件编译版本号的几种方法

Java 文件编译出的 Class 文件带有编译版本信息,那么如何查看某个 Class 文件编译的版本是多少呢?

以一个最简单的 Java 文件为例:

1
2
3
4
5
6
7
package springboot;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World !!!");
}
}

使用 MAVEN 打包,在 pom.xml 文件中配置:

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

使用 javap 命令

javap 命令行工具是用作反编译的,在反编译信息中,可以看到编译的版本信息。

其中 major version 就是编译的版本号,这里的 52 代表 JDK1.8。

在 eclipse 里查看

亦可以将 Class 文件或 Jar 包导入到 eclipse 中,点开需要查看的文件:

直接显示了编译版本号:version: 1.8 : 52.0

编译版本与 JDK 版本对照表

JDK 版本号 Class 版本号 16 进制
1.1 45.0 00 00 00 2D
1.2 46.0 00 00 00 2E
1.3 47.0 00 00 00 2F
1.4 48.0 00 00 00 30
1.5 49.0 00 00 00 31
1.6 50.0 00 00 00 32
1.7 51.0 00 00 00 33
1.8 52.0 00 00 00 34