管理Java版本兼容性

时间:2011-03-04 01:04:46

标签: java versioning

我读过“JDKs are usually forward-compatible, and JREs are usually backward-compatible。”

Java开发人员在其应用程序中进行了哪种类型的版本检查?

您是否每次发布都升级JDK?

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

2 个答案:

答案 0 :(得分:5)

  

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

enter image description here

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

答案 1 :(得分:4)

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

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

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

我们采取的最大限度地减少不兼容性的做法是避免使用未记录的API(sun.misc等)。

在代码中明确检查JRE的当前版本应该仅被视为解决特定JRE版本中已知错误的最后手段。如果在此过程中尽早发现此类错误,我们更倾向于从支持的版本列表中删除该JRE版本。