まず複数バージョンの Java をインストールする
複数バージョンの Java をインストールする方法はこちらに書かれているとおりです。
以下、具体的な手順を書きます。
0. 前提
Homebrew はインストールされているものとします。
1. Java をインストールするために、リポジトリを追加する
まっさらな状態ですと Java のパッケージが brew で引っかからない(に等しい)ので、brew tap
をしてリポジトリを追加します。
$ brew tap adoptopenjdk/openjdk
2. インストール可能な Java (JDK) のバージョンを確認する
brew search
コマンドを用いて、インストール可能な Java (JDK) のバージョンを確認します。パッケージ名が jdk
なので、jdk
という単語でサーチをかけないと引っかからないことに注意です*1。
$ brew search jdk ==> Formulae openjdk openjdk@11 openjdk@12 ==> Casks adoptopenjdk adoptopenjdk12-openj9-jre adoptopenjdk8-jre adoptopenjdk10 adoptopenjdk12-openj9-jre-large adoptopenjdk8-openj9 adoptopenjdk11 adoptopenjdk12-openj9-large adoptopenjdk8-openj9-jre adoptopenjdk11-jre adoptopenjdk13 adoptopenjdk8-openj9-jre-large adoptopenjdk11-openj9 adoptopenjdk13-jre adoptopenjdk8-openj9-large adoptopenjdk11-openj9-jre adoptopenjdk13-openj9 adoptopenjdk9 adoptopenjdk11-openj9-jre-large adoptopenjdk13-openj9-jre oracle-jdk adoptopenjdk11-openj9-large adoptopenjdk13-openj9-jre-large oracle-jdk-javadoc adoptopenjdk12 adoptopenjdk13-openj9-large sapmachine-jdk adoptopenjdk12-jre adoptopenjdk8 adoptopenjdk12-openj9 adoptopenjdk8
Casks
は GUI のパッケージであることを指しますが、今回は GUI であることそのものはほとんど関係ないです。cask
コマンドでないとインストールできない(単なる brew コマンドではインストールできない)ということが大切なことになります。
3. 複数バージョンの Java をどんどん入れていく
brew cask install
コマンドを用いて複数のバージョンの Java をどんどんインストールしていきましょう。例えば以下のようにします。
$ brew cask install adoptopenjdk13 🍺 adoptopenjdk13 was successfully installed! $ brew cask install adoptopenjdk12 🍺 adoptopenjdk12 was successfully installed! $ brew cask install adoptopenjdk11 🍺 adoptopenjdk11 was successfully installed! $ brew cask install adoptopenjdk10 🍺 adoptopenjdk10 was successfully installed! $ brew cask install adoptopenjdk9 🍺 adoptopenjdk9 was successfully installed!
adoptopenjdk8
については2つのパッケージのうちのどちらかを明示的に選ぶ必要があるかもしれません。ここでは adoptopenjdk8
の方を入れます。
$ brew cask install adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: homebrew/cask-versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8 $ brew cask install homebrew/cask-versions/adoptopenjdk8 🍺 adoptopenjdk8 was successfully installed!
4. 各バージョンの Java がインストールされているかどうかを確認する
上記のインストール方法によりインストールされた Java の各バージョンは、以下のディレクトリ配下にあります.
/Library/Java/JavaVirtualMachines
ここにたとえば adoptopenjdk-12.jdk
などという名前で各バージョンごとにディレクトリが切られています。
java
や javac
といった実行ファイルは各バージョンのディレクトリをさらに掘った Contents/Home/bin
にあります。java
コマンドだったら例えば /Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/bin/java
にあります。
それぞれのバージョンの java
コマンドを $ ./java -version
で実行し、それぞれのバージョンでインストールされているか確認するといいでしょう。
5. jenv に各バージョンの Java を追加する
ここでは jenv の説明は省略します。
jenv
に各バージョンの Java を登録していくためには jenv add
コマンドを用います。上記でインストールした前バージョンを一気に登録するとなると下記のようになるでしょう。
ここで、指定するディレクトリは、各バージョンのルートの場所である /Library/Java/JavaVirtualMachines/adoptopenjdk-XX.jdk/Contents/Home
であることには注意です。
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-12.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-10.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-9.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
なお、追加する途中で「開発元を検証できないため開けません」と出ることがあるかもしれませんが、その場合は こちらの記事 を参考にしてみて下さい。
6. jenv versions を実行して正しく追加されたことを確認する
各バージョンの Java が jenv
に正しく追加されたかどうかを確認するため、jenv versions
コマンドを実行しましょう。以下のように表示されれば OK です。
$ jenv versions * system (set by /Users/FOOBAR/.jenv/version) 1.8 1.8.0.232 10 10.0 10.0.2 11 11.0 11.0.5 12 12.0 12.0.2 13 13.0 13.0.1 9 openjdk64-1.8.0.232 openjdk64-10.0.2 openjdk64-11.0.5 openjdk64-12.0.2 openjdk64-13.0.1 openjdk64-9
7. jenv global/local コマンドを実行して使用する Java のバージョンを指定する
あとは他の Xenv
コマンドと同様に、$ jenv global
や $ jenv local
コマンドを実行して、使用する Java のバージョンを指定しましょう。コマンド実行後にシェルの再読み込みが必要になる場合があります。
注意点
- 上記の内容はこの記事を書いた時点(2019/12/16 時点)での内容なので、変わる可能性があります
- Ubuntu での場合は こちらの記事 を参考にしてみて下さい
*1:'java' では引っかからない