我读过“JDKs are usually forward-compatible, and JREs are usually backward-compatible。”
Java开发人员在其应用程序中进行了哪种类型的版本检查?
您是否每次发布都升级JDK?
如何最大限度地减少版本之间的不兼容性?
答案 0 :(得分:5)
如何最大限度地减少版本之间的不兼容性?
该报告由 japi-compliance-checker 工具生成。
答案 1 :(得分:4)
对我们来说效果很好的策略是预先确定我们将支持哪些版本的JRE。我们通过考虑用户使用的平台,我们想要使用的特定JRE的版本特定功能以及JRE版本的发布日期来实现这一点。所有这些都是在与我们的客户支持部门密切协商下完成的。 (当然,在其他条件相同的情况下,我们更喜欢新版本,因为它们往往有错误修复,优化,安全更新等。)
然后,这成为我们QA流程的输入。我们的测试工作必须涵盖我们支持的所有JRE版本。
最后,我们使用在部署应用程序时在JNLP文件中指定特定JRE版本的功能,以确保尝试使用不受支持的版本运行我们的应用程序的客户获得“快速失败”体验(有帮助的)关于如何获得正确的JRE版本的消息,而不是未来的神秘故障。
我们采取的最大限度地减少不兼容性的做法是避免使用未记录的API(sun.misc
等)。
在代码中明确检查JRE的当前版本应该仅被视为解决特定JRE版本中已知错误的最后手段。如果在此过程中尽早发现此类错误,我们更倾向于从支持的版本列表中删除该JRE版本。