关于项目中所引用jar包的jdk编译版本

今天突然想到一个问题:如果整个项目中用的是jdk1.7,那么通过maven依赖的jar包,它们使用的jdk版本是什么呢?
于是我随意打开了项目中的一个类,点进了这个类中引用的slf4j的jar包里,发现jar包中的META-INF文件夹中有一个MANIFEST.MF文件:

这里写图片描述

这里写明了jar包被编译的版本,因为jar包包含的都是.class文件,所以已经提前编译过了。

至于如何下到被与项目中使用的一致的jdk版本编译的jar包,以及jar包分别被1.6 1.7 1.8版本的jdk编译,运行在1.8版本的jvm哪个性能更好,仍需要进一步的研究- -

书接上文,请教了一个大神,大神说,
第一个问题,如果你想用1.7编译这个jar包,需要下到他的源码,然后自己构建这个项目,生成jar包,然后上传到私服,其他同事也就可以用了。
于是我就下到了源码,maven clean install -Dmaven.test.skip=true编译了两次,都失败了… 大神说可能是这个项目的jar包依赖下载不成功,有可能是网络的原因,有可能是这个jar包放在了人家公司的私服上,没有在公网中(http://search.maven.org/) 。

也就是说如果一个jar包用的1.6编译的,那么一个运行在1.5上的项目肯定是无法使用这个jar的。另外现在有些框架只支持jdk1.8,也就是说这个框架使用的jdk1.8编译的,搞不好也是用1.8写的源码。

第二个问题,大神说性能基本差不多,1.8在构建时候 生成的字节码有的地方有优化,这个肯定是多少有点优化的。基本兼容,每次jdk升级不都是说有性能的提升吗,他们的提升主要是靠生成字节码的质量,性能提升肯定不大 但多少有点小提升 可能提升千分之一。

恩 ~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值