java如何查看jar编译的jdk版本

方法一、javap命令

javap命令可以用于反编译java class文件。查看jar包的编译版本首先是将jar包解压,然后再选择其中一个class文件,查看major版本号
Java 1.2 uses major version 46
Java 1.3 uses major version 47
Java 1.4 uses major version 48
Java 5 uses major version 49
Java 6 uses major version 50
Java 7 uses major version 51
Java 8 uses major version 52
Java 9 uses major version 53

1. linux终端命令
$ javap -verbose MyClass | grep "major"

2. windows终端命令
$ javap -verbose MyClass | findstr "major"
public class Test {
	@Override
	public String toString() {
		return "I'm class of Test";
	}
}
a)编译测试1.6
$ javac -source 1.6 -target 1.6 Test.java
warning: [options] bootstrap class path not set in conjunction with -source 1.6
1 warning

$ javap -verbose Test.class | grep 'major'
major version: 50

b)编译测试1.8
$javac -source 1.8 -target 1.8 Test.java
$ javap -verbose Test.class | grep 'major'
major version: 52

方法二、根据class文件结构直接查看二进制码

class文件的二进制布局如下:
占位大小(byte字节) 说明 备注
4 魔法数字,一般用来标识改文件为class文件 CAFEBABE固定值
2 较小版本的使用,可是值一直为00 本人还没明白意义
2 class主要支持的格式版本  
     
java1.6编译的

java1.8编译的class文件

总结

一般只需要用javap命令就好了,可读性比较强
参考资料

猜你喜欢

转载自blog.csdn.net/SweetTool/article/details/77203193