OpenJDK 11 を Homebrew で macOS にインストールする

## (2020年1月17日追記) Homebrew でインストールされる OpenJDK 11 (java11) は Oracle ビルド版

もうサポートされていないので AdoptOpenJDK 等のビルド版を使用したほうが良いと思われる。
[Java 11 \(OpenJDK: AdoptOpenJDK\) を Homebrew で macOS にインストールする \- Qiita](https://qiita.com/niwasawa/items/460ccd0fa0041e7a2491)

参考までに、 Homebrew でインストールされる OpenJDK 11 (java11) の最新バージョンは2019年1月15日のもの。

```
$ /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/bin/java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
```

[homebrew\-cask\-versions/java11\.rb at master · Homebrew/homebrew\-cask\-versions · GitHub](https://github.com/Homebrew/homebrew-cask-versions/blob/master/Casks/java11.rb)

```
cask 'java11' do
  version '11.0.2,9'
  sha256 'f365750d4be6111be8a62feda24e265d97536712bc51783162982b8ad96a70ee'

  url "https://download.oracle.com/java/GA/jdk#{version.major}/#{version.after_comma}/GPL/openjdk-#{version.before_comma}_osx-x64_bin.tar.gz"
  name 'OpenJDK Java Development Kit'
  homepage 'https://www.oracle.com/technetwork/java/javase/'

  artifact "jdk-#{version.before_comma}.jdk", target: "/Library/Java/JavaVirtualMachines/openjdk-#{version.before_comma}.jdk"
end
```

↓ それでも Homebrew で OpenJDK 11 をインストールするには以下を参照。

## Homebrew をインストール

インストール方法はこのへん → https://brew.sh/index_ja

## 古いバージョンをインストールできる homebrew-cask-versions を導入

[GitHub \- Homebrew/homebrew\-cask\-versions: 🔢 Alternate versions of Casks](https://github.com/Homebrew/homebrew-cask-versions)

```
$ brew tap homebrew/cask-versions
```

## OpenJDK 11 をインストール

```
$ brew cask install java11
```

## インストールされたディレクトリの場所を確認

```
$ /usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
```

## 環境変数 JAVA_HOME と PATH を設定

必要に応じて .bash_profile や .bashrc などに記述する。

```
export JAVA_HOME=`/usr/libexec/java_home -v 11`
PATH=${JAVA_HOME}/bin:${PATH}
```

## インストールされた OpenJDK を確認

```
$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

$ javac -version
javac 11.0.2

$ which java
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/bin/java

$ which javac
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/bin/javac
```

## 参考: OpenJDK 11 が最新版だったときの記録

2019年01月25日の時点では OpenJDK の最新バージョンが11だったので、以下のコマンドでバージョン11がインストールされていた。現在の最新バージョンは11ではないので、もっと新しい OpenJDK がインストールされる。

```
$ brew cask install java
```

[homebrew\-cask/java\.rb at 4f5fe409889d844c91b35c03f0ea37932b5a818b · Homebrew/homebrew\-cask · GitHub](https://github.com/Homebrew/homebrew-cask/blob/4f5fe409889d844c91b35c03f0ea37932b5a818b/Casks/java.rb) を見ると、その時点でインストールされるのが OpenJDK 11.0.2+9 だったとわかる。

```
cask 'java' do
  version '11.0.2,9'
  sha256 'f365750d4be6111be8a62feda24e265d97536712bc51783162982b8ad96a70ee'

  url "https://download.java.net/java/GA/jdk#{version.major}/#{version.after_comma}/GPL/openjdk-#{version.before_comma}_osx-x64_bin.tar.gz"
  name 'OpenJDK'
  homepage 'https://jdk.java.net/'
```

インストールされた OpenJDK を確認。

```
$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

$ javac -version
javac 11.0.2

$ which java
/usr/bin/java

$ which javac
/usr/bin/javac

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    11.0.2, x86_64:	"OpenJDK 11.0.2"	/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home

$ ls -l /usr/bin/java*
lrwxr-xr-x  1 root  wheel  74 10 16 18:48 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x  1 root  wheel  75 10 16 18:48 /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
lrwxr-xr-x  1 root  wheel  77 10 16 18:48 /usr/bin/javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
lrwxr-xr-x  1 root  wheel  75 10 16 18:48 /usr/bin/javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
lrwxr-xr-x  1 root  wheel  75 10 16 18:48 /usr/bin/javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
lrwxr-xr-x  1 root  wheel  82 10 16 18:48 /usr/bin/javapackager -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javapackager
lrwxr-xr-x  1 root  wheel  76 10 16 18:48 /usr/bin/javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
```