管理Java版本兼容性

M. *_*ley 6 java versioning

我读过" JDK通常是向前兼容的,而JRE通常是向后兼容的."

Java开发人员在他们的应用程序中做了什么样的版本检查?

你是否每次发布升级JDK?

如何最大限度地减少版本之间的不兼容性?

lin*_*ild 5

如何最大限度地减少版本之间的不兼容性?

在此输入图像描述

该报告由japi-compliance-checker工具生成.


Mat*_*nry 4

对我们来说行之有效的策略是预先决定我们将支持哪些版本的 JRE。我们通过考虑用户使用的平台、我们想要使用的特定 JRE 的版本特定功能以及 JRE 版本的发布日期来做到这一点。所有这些都是在与我们的客户支持部门密切协商后完成的。(当然,在其他条件相同的情况下,我们更喜欢较新的版本,因为它们往往有错误修复、优化、安全更新等。)

然后,这将成为我们 QA 流程的输入。我们的测试工作必须涵盖我们支持的所有 JRE 版本。

最后,当我们部署应用程序时,我们使用在 JNLP 文件中指定特定 JRE 版本的功能,以确保尝试使用不受支持的版本运行我们的应用程序的客户获得“快速失败”体验(并提供有关如何使用的有用消息)以获得正确的 JRE 版本),而不是日后神秘的失败。

为了最大限度地减少不兼容性,我们所做的一件事是避免未记录的 API(sun.misc等等)。

从代码中显式检查 JRE 的当前版本只能被视为解决特定 JRE 版本中已知错误的最后手段。如果在此过程中尽早发现此类错误,我们更愿意从支持的版本列表中删除该 JRE 版本。