当您单击“适用于您的计算机的 Java”时,Oracle 网站似乎推荐版本 8u91。但是当您单击“适用于开发人员的 Java”时,它会提供两个选项:8u91 和 8u92。有什么区别?通常我会认为最高版本号是最好的,但在这种情况下,我不确定。
答案1
Oracle 网站很明确:在所有情况下都使用 8u91(“CPU”版本),除非您特别需要“PSU”版本(在本例中为 8u92)中的修复。CPU 和 PSU 版本之间的差异通过发布页面上的链接进行解释。
以供将来参考,Oracle 发布博客的确切引述如下:
JDK 8u91 和 8u92,两个新的 Java 8 更新现已推出。Oracle 强烈建议大多数 Java SE 用户升级到最新的 Java 8u91 CPU 版本,其中包含重要的安全修复程序。Java SE 8u92 是一个补丁集更新,包括 Java 8u91 的所有内容以及附加功能。您可以从下载最新的 JDK 版本Java SE 下载页面...
答案2
这是观点问题。德里克没有引用的是:
Java SE 补丁集更新 (PSU)(即 u92)包含相应 CPU(即 u91)中的所有修复,以及额外的非关键修复。仅当您受到该版本中修复的其他错误之一的影响时,才应使用 Java PSU 版本。
为此,您需要阅读发行说明并查看是否需要其他修复。
答案3
答案4
简单的回答是,“关键补丁更新”(或 CPU,这些对中的第一个)是季度更新,“补丁集更新”(或 PSU)是一种情境更新,它试图修复在其 CPU 前身中发现的问题,在下一个 CPU 正式标记为黄金之前发布。
这里有一篇文章稍微描述了一下发生的事情:
CPU、PSU、SPU - Oracle 重要补丁更新术语更新。
重要补丁更新 (CPU) 现在是指每季度发布的整体安全修复程序,而不是该季度的累积数据库安全补丁。将 CPU 视为总体季度发布版本,而不是单个补丁。
你应该感到困惑
Oracle 在明确 CPU 和 PSU 之间的理论和实际差异方面确实做得不太好。
例如,在发布说明中8u111和8u112我可以找到任何理由不是使用最新的 PSU,目前是 8u112。但发行说明本身也没有给我一个很好的理由来说明为什么我会使用 PSU!
112 有一个“更改”部分,其中包括“security-libs/java.security——SunPKCS11 提供程序不再默认提供 SecureRandom”,但没有提及其他严重问题。
JVM 在 macOS Sierra 10.12 上抛出 NullPointerException
在 macOS Sierra 10.12 上,如果用户在浏览器中运行小程序时按下修饰键(例如 Command、Alt、Shift),则可能会显示一个名为“内部错误”的错误框。它还会在 macOS Dock 中显示“exec”图标。用户可以关闭小程序,或者尝试在不按下修饰键的情况下重新运行小程序。要解决此问题,请安装适用于 Mac OS X 的 JRE 8u112。[重点是我的]
我的意思是,从技术上讲,这个问题在于错误页面,它本身从发布说明中删除了一两个链接,位于第 42 位,[macos] JVM 在新 MacOS 10.12 上不断抛出 NullPointerException,但发现这并不方便用户。需要做一些工作才能确定使用 PSU 是否对您来说至关重要。
总结
最好的猜测是,CPU 的质量保证很好,而 Oracle 对 PSU 不太有信心,因为它们基本上是即将推出的、尚未发布的季度 CPU 的正在进行的预览版。
但是,由于他们可以告诉所有使用 macOS Sierra 的人使用 PSU,因此 PSU 可能足以用于开发,并且可以很好地预测下一个 CPU。除非其中一个 PSU 修复对你来说不是关键任务,否则你不一定会将其部署到生产服务器,但你可能可以,这取决于您的组织对于边缘版本的熟悉程度。
但 Oracle 应该说这一切在某个地方更清楚一点,否则我们就会被这个问题困扰。