82234


Oracle OpenJDK 11.0.4 以降のダウンロードファイル(Windows版)の場所を探しているのですが、見つける事が出来ません。

以下のURLでは 11.0.2 まではダウンロードする事が可能でした。

<https://jdk.java.net/archive/>

ご存知の方がいらっしゃれば、ご教授いただけますでしょうか。  
よろしくお願いいたします。


CC BY-SA 4.0
2021-09-02T09:38:16.753
82181
2021-11-21T20:14:10.120
2021-09-08T02:53:13.200
3060
37340
question
java
Oracle OpenJDK 11.0.4 以降はどこからダウンロードできますか？


自分が使っている/知っているパッケージマネージャがどう扱っているか見てみました。

## [SDKMAN!](https://sdkman.io/)

["Java.net"と分類されているもの](https://api.sdkman.io/2/candidates/java/MINGW64_NT-10.0-19043/versions/list?installed)の実態は

  * <https://api.sdkman.io/2/broker/download/java/11.0.12-open/MINGW64_NT-10.0-19043>

のリダイレクト先

  * <https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jdk_x64_windows_11.0.12_7.zip>

のことでした。  
つまり、コメントにもある [AdoptOpenJDK/openjdk11-upstream-
binaries](https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries)
を指しています。

(これは誤解を招く表記で、良くないと思います…)

## [Scoop](https://scoop.sh/)

java.net からダウンロードできるものをOpenJDKとしていました。  
従って最新版としてインストールできるバージョン は `11.0.2-9`です。

  * <https://github.com/ScoopInstaller/Java/blob/master/bucket/openjdk11.json>

SDKMAN!がOpenJDKとして扱っているものは
[`adopt11-upstream`](https://github.com/ScoopInstaller/Java/blob/master/bucket/adopt11-upstream.json)という名前で登録されています。

## [Homebrew](https://brew.sh/)

GitHub の [`openjdk/jdk11u`](https://github.com/openjdk/jdk11u/tags)
にあるソースからビルドしているようです。  
(ただし最新のバージョン、というわけでもなさそうです)

  * <https://github.com/Homebrew/homebrew-core/blob/master/Formula/openjdk@11.rb#L4>

* * *

LinuxディストリビューションのパッケージマネージャでインストールされるOpenJDKはディストリビュータが自前でビルドしたものでしょうし、そういう意味では
[Microsoftビルド版](https://www.microsoft.com/openjdk)を以てWindowsのOpenJDKと呼ぶこともできそうな気もします。

ともあれ、 java.net からダウンロードできるバイナリ、という意味であれば、 `11.0.2-9` が最新のもののようです。


CC BY-SA 4.0
2021-09-04T10:39:55.540
82234
2021-11-21T20:14:10.120
2021-11-21T20:14:10.120
2808
2808
82181
answer


Oracle
OpenJDKは、Oracleがメンテナーとして関わっているOpenJDKを素ビルドして配布しているものです。そして、OpenJDKにおいてOracleがメンテナーとして関わっているのは各メジャーバージョンリリースから半年間だけです。（半年経つと次のメジャーバージョンが出るので。）

これは、OpenJDKというプロジェクト自体にはLTSという概念は存在しないからです。LTSの扱いを決めているのは各OpenJDKディストリビューションのディストリビューターです。ただし、JDK11をLTSにするのは各ディストリビューター共通のプラクティスなので、OpenJDKリポジトリ上でもJDK11は11.0.3以降もメンテされています。しかしそれはOracleの責任においてなされているのではなく、メンテナーはRedHatに引き継がれています。OracleがLTSとしてサポートするJDKはあくまでもOracle
JDKであり、Oracle OpenJDKにはLTSはありません。

結論として、 **バイナリディストリビューションとしてのOracle OpenJDKは11.0.2までしか存在しません。**
OpenJDKの11.0.3～11.0.12をバイナリディストリビューションとして入手したい場合には、Oracle以外の誰かがビルドしたものを入手するしかありません。

\--

補足です。（他の方のanswerにcommentできる権限がないのでこちらで。）

SDKMAN!が11.0.12-openからリンクしているビルドは、Adopt自前のビルドではなく、
[adoptopenjdk.net/upstream.html](https://adoptopenjdk.net/upstream.html)
に説明されている通り、RedHatがビルドしたものです。（RedHat
OpenJDKはRHのサイトからはRHの開発者アカウントがないとダウンロードできないのですが、「RHがビルドしたOpenJDK」自体はAdoptのサイトから自由にダウンロードできます。）そして上で書いたとおりRHが現在のOpenJDK11のメンテナーです。

なので、これはOracle
OpenJDKではありませんが、OpenJDK11のメンテナーがOpenJDK11を素ビルドしたものという意味で11.0.2までのOracle
OpenJDKと同じ意味合いのビルドといえます。（なのでSDKMAN!がjava.netのところに表示するのは正しいです。）

\--

また、[jdk.java.net](https://jdk.java.net) に置かれているものは、RI、すなわちReference
Implementationです。これは大抵はメジャーリリースされた最初のバージョンを指します。もう少し説明すると、各JDKバージョンの仕様を定めたJSRで規定されたRIになります。（互換性を語るときの基準になるバージョン、と理解すると良いかも知れません。）

なのでここに置かれているのは、JDK11であれば[JSR384](https://www.jcp.org/en/jsr/detail?id=384)で指定されたReference
Implementationになります。これは最初のJDK11のGAバージョンと同じもの（11.0.0のビルド#28）になります。

かならずしも最初のリリースではない、というのは、例えば、Java SE
8は[JSR337](https://www.jcp.org/en/jsr/detail?id=337)がTLS
1.3サポート追加のために2020年に改訂されてMR3（メンテナンスリリース3）になっています。なのでここに置かれるのは最初の2014年3月18日にリリースされたJava
SE 8ではなく、JSR337MR3でRIと定められている8u41になります。（いちおう、JDK9以降ではこういうJSRの更新は行われていません。）


CC BY-SA 4.0
2021-09-24T03:49:05.843
82656
2021-09-26T07:37:33.493
2021-09-26T07:37:33.493
5734
5734
82181
answer