如何查看依赖第三方jar后,最低要求项目运行的jdk版本

在jar包下会存在一个META-INF目录,该目录下有一个MANIFEST.MF文件,这个文件以键值对的形式存储一些关于jar包的关键信息。下面我以dubbo的MANIFEST.MF文件做为示例:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: dubbo
Build-Jdk: 1.6.0_30
Specification-Title: Dubbo
Specification-Version: 2.4.9
Specification-Vendor: Alibaba
Implementation-Title: Dubbo
Implementation-Version: 2.4.9
Implementation-Vendor-Id: com.alibaba
Implementation-Vendor: Alibaba

上面只是 提供方的provider模块使用的jdk版本 并不一定是人家项目的使用的jdk版本 仅仅是idea 的language level

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第1张图片

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第2张图片

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第3张图片

当然 这个是忘调成1.8了

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第4张图片

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第5张图片

 此项目 正常模块language level都是1.8

如果要看 依赖的provider jar 最低要求运行起来的jdk版本 可以如下方法:

将jar包依赖进一个工程,随便找其jar包里的一个.class文件

如何查看依赖第三方jar后,最低要求项目运行的jdk版本_第6张图片

可以看到 最低要求你项目的jdk版本1.7才能运行起来

方法二:通过反编译.class文件来查看。

解压jar包,得到.class文件。用JDK自带的javap反编译.class文件,用如下命令:

javap -v JavaSource.class
  查看得到的信息中,major version属性的内容,如下:

major version: 52 //主版本号
minor version: 0 //小版本号
  说明这个.class文件是由JDK1.8编译得到的。

J2SE 8.0 = 52(0x33 hex)
J2SE 7.0 = 51(0x32 hex)
J2SE 6.0 = 50 (0x32 hex)
J2SE 5.0 = 49 (0x31 hex)
JDK 1.4 = 48 (0x30 hex)
JDK 1.3 = 47 (0x2F hex)
JDK 1.2 = 46 (0x2E hex)
JDK 1.1 = 45 (0x2D hex)

之前查资料,有人说查看jar包中的META-INF\MANIFEST.MF文件,Build-Jdk属性,经过验证这是运行打包工具的JDK版本,并不是jar包的版本
 

 

你可能感兴趣的:(maven)