java:javap查看class文件的JDK版本塈JDK版本与major version(45~55)的对照表

Posted 10km

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:javap查看class文件的JDK版本塈JDK版本与major version(45~55)的对照表相关的知识,希望对你有一定的参考价值。

运行 Java 应用程序时,JRE 版本必须与用于编译应用程序的 JDK 版本匹配或更高。
当尝试使用较低版本的 Java 运行高版本 JDK编译的应用程序时,就会抛出UnsupportedClassVersionError异常。

java.lang.UnsupportedClassVersionError: org/antlr/v4/Tool has been compiled by a 
more recent version of the Java Runtime (class file version 55.0), this version 
of the Java Runtime only recognizes class file versions up to 52.0

在本文中,我们将介绍如何通过JDK工具检查class的 JDK 版本。

Java版本号与major version

Java 在类文件中使用两位数字定义主版本号(major version)。以下是 Java 版本与major version的对照表:

JDKmajor version
Java 1.145
Java 1.246
Java 1.347
Java 1.448
Java 5(1.5)49
Java 6(1.6)50
Java 7(1.7)51
Java 852
Java 953
Java 1054
Java 1155

javap 查看major version

JDK提供的工具javap可以获取一个类(.class)文件的各种详细信息,也包括class中定义的major version

下面是个简单的HelloWorld.java程序

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

JDK编译后生成HelloWorld.class,就可以用javap查看生成的class中的major version

Linux:

javap -v HelloWorld.class | grep major

Windows:

javap -v HelloWorld.class | findstr major

如果你希望查看一个jar中的类的major version.
antlr-4.11.1-complete.jar 为例
Linux:

javap -v -cp /path/antlr-4.11.1-complete.jar org.antlr.v4.Tool | grep major

Windows:

javap -v /path/antlr-4.11.1-complete.jar org.antlr.v4.Tool | findstr major

-cp 即-classpath, 指定查找类文件的位置
org.antlr.v4.Tool 即为antlr-4.11.1-complete.jar中的一个类的完整名称

以上是关于java:javap查看class文件的JDK版本塈JDK版本与major version(45~55)的对照表的主要内容,如果未能解决你的问题,请参考以下文章

java命令:javac/java/javap

如何查看class文件所对应的JDK版本

怎样查看class文件的jdk版本号

如何通过class文件来查看java的版本

JavaClass文件编译的版本号与JDK版本号的对应关系

查看war包编译时使用的jdk版本