概要
- jenv を用います
- Java 自体は Oracle のサイトから dmg でダウンロードします(ユーザ登録が必要です)
具体的な手順
1. jenv をインストールする
他の Xenv と同様に、git clone
して、シェルの設定ファイルに追記をします。以下、公式ドキュメントをそのまま引用します。
git clone https://github.com/jenv/jenv.git ~/.jenv # Shell: bash echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile # Shell: zsh echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc
2. Java のバイナリをダウンロードする
Oracle Java Archive から Java のバイナリをダウンロードします。一部のバージョンの Java はこちらよりも新しいバージョンが存在するので*1、適宜探してみて下さい。なお、ダウンロードするためには Oracle のアカウントが必要になります。
2019/02/17 現在で私がダウンロードできたバージョン(ファイル名)は以下のとおりです。
- jdk-7u80-macosx-x64.dmg
- jdk-8u202-macosx-x64.dmg
- jdk-9.0.4_osx-x64_bin.dmg
- jdk-10.0.2_osx-x64_bin.dmg
- jdk-11.0.1_osx-x64_bin.dmg
3. Java をどかどかインストールする
ダウンロードしたバイナリをどんどんインストールします。異なるバージョンは別々に管理されますので、上書きを気にする必要はありません。
4. インストール状況を確認する
/usr/libexec/java_home -V
を実行してインストール状況を確認します。私は以下のようになりました。一番最後の行は現在用いているバージョンです。
$ /usr/libexec/java_home -V Matching Java Virtual Machines (5): 11.0.1, x86_64: "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home 10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home 9.0.4, x86_64: "Java SE 9.0.4" /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home 1.8.0_202, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
5. jenv にそれぞれのバージョンをどかどか追加していく
jenv
に それぞれのバージョンの Java をどんどん追加していきましょう。jenv add ディレクトリ名
です。私は以下のようになりました。
$ jenv add /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home oracle64-11.0.1 added 11.0.1 added 11.0 added $ jenv add /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home oracle64-10.0.2 added 10.0.2 added 10.0 added $ jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home oracle64-9.0.4 added 9.0.4 added 9.0 added $ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home oracle64-1.8.0.202 added 1.8.0.202 added 1.8 added $ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home oracle64-1.7.0.80 added 1.7.0.80 added 1.7 added
6. jenv versions コマンドを実行して正しく登録されたかを確認する
先ほどの jenv add
コマンドの実行によって jenv
に複数の Java が正しく登録されたかを確認します。私は以下のようになりました。
$ jenv versions * system (set by /Users/USERNAME/.jenv/version) 1.7 1.7.0.80 1.8 1.8.0.202 10.0 10.0.2 11.0 11.0.1 9.0 9.0.4 oracle64-1.7.0.80 oracle64-1.8.0.202 oracle64-10.0.2 oracle64-11.0.1 oracle64-9.0.4
7. jenv global コマンドを実行して普段使うバージョンを指定する
あとは他の Xenv コマンドと同じです。jenv global
コマンドを実行して、普段使うバージョンを 1.8.0.202
に指定します。
$ jenv global 1.8.0.202
実行したらバージョンを確認します*2。
$ jenv versions system 1.7 1.7.0.80 1.8 * 1.8.0.202 (set by /Users/takiya/.jenv/version) 10.0 10.0.2 11.0 11.0.1 9.0 9.0.4 oracle64-1.7.0.80 oracle64-1.8.0.202 oracle64-10.0.2 oracle64-11.0.1 oracle64-9.0.4 $ java -version java version "1.8.0_202" Java(TM) SE Runtime Environment (build 1.8.0_202-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
8. 特定ディレクトリ配下ごとにバージョンを変えたい場合
特定のディレクトリ配下を特定のバージョンに変えたい場合は jenv local
コマンドを使います*3。
$ jenv local 1.7.0.80
上記コマンドを実行すると実行したディレクトリに .java-version
が生成されており、その中にバージョン番号が書いてあります。このファイルがあれば、そのファイルがあるディレクトリ配下では、書いてあるバージョンで Java が実行されます。