我们将更新我们的CI系统,从
Java 7创建构建到
Java 8.之后,我们希望将项目逐个迁移到Java 8.当然,我们希望能够为仍然使用Java 7的旧版本创建bug修复版本.
如果将相同的源代码,目标版本和源代码从JDK 7转移到JDK 8,我们可以确定不会出现任何问题吗?我们在开发机器上进行测试,没有任何问题.
在此之前,我们也逐步将部署服务器从JRE 7更新为JRE 8.
请注意,我们希望在CI系统上保留单个Java JDK安装,否则会变得复杂.
为了使之更清楚:
我对同样的执行结果更感兴趣,而不是相同的字节码.相同的字节码只会确认第一个(运行在同一个JRE上),如果我明白了.
解决方法
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编译器生成的字节码之间存在一些差异,但这并不重要.