加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用不同版本的JDK编译Java,同样的目标和源版本保证执行相同的操

发布时间:2020-12-14 06:02:16 所属栏目:Java 来源:网络整理
导读:我们将更新我们的CI系统,从 Java 7创建构建到 Java 8.之后,我们希望将项目逐个迁移到Java 8.当然,我们希望能够为仍然使用Java 7的旧版本创建bug修复版本. 如果将相同的源代码,目标版本和源代码从JDK 7转移到JDK 8,我们可以确定不会出现任何问题吗?我们在开
我们将更新我们的CI系统,从 Java 7创建构建到 Java 8.之后,我们希望将项目逐个迁移到Java 8.当然,我们希望能够为仍然使用Java 7的旧版本创建bug修复版本.

如果将相同的源代码,目标版本和源代码从JDK 7转移到JDK 8,我们可以确定不会出现任何问题吗?我们在开发机器上进行测试,没有任何问题.

在此之前,我们也逐步将部署服务器从JRE 7更新为JRE 8.

请注意,我们希望在CI系统上保留单个Java JDK安装,否则会变得复杂.

为了使之更清楚:
我对同样的执行结果更感兴趣,而不是相同的字节码.相同的字节码只会确认第一个(运行在同一个JRE上),如果我明白了.

我们将不会在代码中使用Java 8功能,直到我们在Java 8上运行所有部署.因此兼容性不是问题.

解决方法

Does compiling Java with different versions of JDK and same target and source version produce same bytecode?

没有保证.

实际上,使用相同编译器在相同硬件上使用相同选项创建的两个.class文件将具有相同的字节码,但由于嵌入的编译时间戳属性,这些文件可能仍然不同.

但是,如果您想比较名义上等效的字节码文件,这个Q& A提供了一些可能的线索:

> Is there a tool that we could use to compare two Jars at Binary/Byte code level?

我希望您会发现Java 7和Java 8编译器生成的字节码之间存在一些差异,但这并不重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读