Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

JavaのリリースにはCPUとPSUの2種類があります

Java™ SE Development Kit 8, Update 51 (JDK 8u51)がリリースされましたね。

僕もダウンロードしました。

さて、このJDK 8u51は「CPU」なリリースです。 実は、JavaのUpdateには2種類あります。1つは「CPU」、もう1つは「PSU」です。

CPUは「Critical Patch Update」重大なパッチアップデートです。 PSUは「Patch Set Update」パッチセットアップデートです。

どちらがどう違うかわかりづらいですが、公式には以下のような意味の違いが説明にあります。

What is the difference between a Java CPU and PSU release? Java SE Critical Patch Updates (CPU) contain fixes to security vulnerabilities and critical bug fixes. Oracle strongly recommends that all Java SE users upgrade to the latest CPU releases as they are made available. Java SE CPU releases are odd numbered versions (i.e. 7u71, 7u65 – see more on Java SE version numbering schemes here).

Java SE Patch Set Updates (PSU) contain all of fixes in the corresponding CPU, as well as additional non-critical fixes. Java PSU releases should only be used if you are being impacted by one of the additional bugs fixed in that version. The release notes call out the additional fixes available in Java SE PSU releases. Java CPU and PSU Releases Explained

簡潔に訳すと次のようになります。

CPUとPSUの違いは?

CPUはセキュリティの脆弱性対策や重大なバグフィックスを含んでいる。OracleはすべてのJava SEユーザに最新のCPUリリースを提供することを強く推奨する。CPUリリースは奇数のバージョンだ(たとえば7u71、7u65)。 PSUには対応するCPUにあるすべてのフィックスが含まれており、さらにそれほど重要でないフィックスも追加している。PSUリリースはこのバージョンにあるバグフィックスに影響されるときだけ適用すべきだ。リリースノートにPSUリリースに含まれる追加のフィックスを記している。

基本的にCPUはすぐに適用するもの、PSUは自分たちのアプリケーションで問題となっているバグがフィックスされているなら適用すればよい、という感じですね。バージョンが奇数であればCPUなので、適用すると考えればよいです。

ただ、こうしたバージョン表記はわかりづらい部分もあり、JEP(JDK Enhancement Proposal)で表記体系を変更することを検討しているそうです。このことについて詳しくまとめてくださっているので、ぜひこちらもお読みください。

d.hatena.ne.jp