本文提供将应用程序从 Java 7 迁移到 Java 8 的概要指南。 不涉及使用 Java 8 功能。
将代码从 Java 7 转换到 Java 8 时,并没有一种适用于所有情况的解决方案。
从 Java 7 迁移到 Java 8 通常需要的工作量很小。 潜在问题包括少量已更改的 API、加强 javac 中的类型推理、对类加载程序的更改,以及对permgen(垃圾回收的一部分)的更改。
通常,最佳方法是先在不重新编译的情况下尝试在 Java 8 上运行。
这种方法会尽快启动并运行应用程序。
对于库,目标是发布使用 JDK 8 编译和测试的项目。
Java 7 停止支持 (EOL)
当 Java 7 于 2022 年 7 月 29 日停止支持时,社区支持将结束。
Java 7 上运行的任何应用程序将继续运行,但 Java 7 本身不会收到更新或安全修补程序。
若要最大程度地减小风险和潜在的安全漏洞,请根据工作负载要求将应用程序升级到 Java 8 或 11。
请遵循规范指南
Oracle JDK 迁移指南
。 该迁移指南涵盖了
Java 规范中的不兼容性
和
JDK 实现中的不兼容性
。 这些不兼容性中的大多数是边缘情况,当你看到警告或遇到错误时应该进行调查。
在 Java 8 上运行
大多数应用程序在不修改的情况下应该可以在 Java 8 上运行。 首先要尝试的是在不重新编译代码的情况下在 Java 8 上运行。 直接运行的目的是查看执行时会出现哪些警告和错误。 此方法可以
让应用程序在 Java 8 上更快地运行,因为可以尽量减少那些必须完成的工作。
你可以在不重新编译代码的情况下解决可能会遇到的大多数问题。
如果必须修复代码问题,请进行修复,但继续使用 JDK 7 进行编译。 如果可能,请在使用 JDK 8 进行编译之前,让应用程序使用
java
版本 8 运行 。
用 Java 8 进行编译
如果使用 JDK 8 进行编译,可能需要更新才能生成脚本、工具、测试框架和包含的库。 使用
javac
的
-Xlint:unchecked
选项可获取 JDK 内部 API 的使用详细信息和其他警告。
Azure 应用服务的 Java 7 迁移
若要将应用服务从 Java 7 迁移到 Java 8 或 11,请登录到 Azure 门户,导航到要更新的 Web 应用,然后转到“配置”>“设置”>“堆栈设置” 。 你将看到 Java 主要版本和次要版本的下拉列表,如果使用的是 Tomcat,你将看到 Tomcat 版本。 选择 Java 8 或 11。 请记住,你可以在部署槽位中更改此配置,以安全地测试配置更改,然后将新环境交换到生产中。 (Java 7 可能会隐藏,使客户无法获取旧运行时依赖项。)有关详细信息,请参阅
在 Azure 应用服务中设置过渡环境
。
如果需要指定任何新的运行时选项,可以使用
JAVA_TOOLS
应用设置,这些设置将在应用程序启动时应用。 有关详细信息,请参阅
为 Azure 应用服务配置 Java 应用
。 若要详细了解应用服务上运行时的支持策略,请参阅
应用服务概述
的
内置语言和框架
部分。
在 Java 8 上运行应用程序后,建议使用以下指南遵循 Java 11 的 Java 现代化路径。
迁移到 Java 11 的原因
。
从 Java 8 转换到 Java 11
。