猿问

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

我有 java EE 工件,如 .jar 、 .war 、 .ear 文件在 java 1.6 版本中编译和运行。我想在最新的 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 类中进行编译以避免任何运行时问题。

有什么想法吗 !或在这方面的其他有用选项。


慕妹3146593
浏览 261回答 2
2回答

温温酱

正如@Stultuske 提到的,你只告诉在任何一种情况下都不能更改代码,那么你的第一个案例就不是一个有效的案例。但无论如何,根据 java(Oracle) 兼容性规范,Java 8 向后兼容以前的版本,除了一些非常罕见的二进制不兼容情况外,毫无疑问。有关这方面的更多信息,您可以参考下面的堆栈溢出链接——

慕森王

最近我做了类似的事情,但如果需要,我们更新了代码/依赖项。我建议首先重新编译代码库,因为这会很快告诉您它或任何依赖项是否不支持较新的 Java 版本。如果编译成功,则部署到测试环境并执行健全性、回归等。我希望你不是在谈论直接部署到生产环境:)
随时随地看视频慕课网APP

相关分类

Java
我要回答