在较高版本中运行Java代码,在较低Java版本中编译

时间:2018-10-05 10:27:11

标签: java

我有Java EE工件,例如在Java 1.6版本中编译并运行的.jar,.war和.ear文件。我想在最新的Java版本(如Java 1.8)中运行它们(.ear文件[.jar + .war])。

考虑迁移到新的Java版本,哪个选项是最好的选择。

1)在1.8中重新编译代码并部署到应用程序服务器
-更加安全。
2)只需部署到Java 1.8
-不需要代码编译(表示使用Java 1.6生成的.ear文件)。 .ear文件可以安全地部署到最新的Java 1.8版本
-也许我们最终不会遇到运行时问题?

因为这是生产代码库,所以没有开发人员。因此,无论哪种情况,代码都不会更改,唯一的更改是Java版本。我更喜欢使用Option-1,因为它是在现有Java类的更高版本中进行编译以避免出现任何运行时问题。

任何想法!或其他有用的选项。

谢谢

2 个答案:

答案 0 :(得分:0)

正如@Stultuske所提到的,您只告诉您在两种情况下都无法更改代码,然后您的第一种情况仅是无效的。

但是无论如何,按照Java(Oracle)兼容性规范,Java 8与以前的版本向后兼容,无疑,除了某些极少数情况下发生二进制不兼容的情况外,对此毫无疑问。

有关此的更多信息,请参见下面的堆栈溢出链接-

Can newer JRE versions run Java programs compiled with older JDK versions?

答案 1 :(得分:0)

最近我做了类似的事情,但是我们根据需要更新了代码/依赖项。

我建议您先重新编译代码库,因为这将快速告诉您它是否存在依赖关系或不支持较新的Java版本。如果编译成功,则部署到测试环境并进行理智,回归等。

我希望您不要在谈论直接部署到生产环境:)