大まかな流れ
- jenv をインストールして、シェルの設定を行う
- java の各バージョンをインストールしていく
jenv add
コマンドを使って jenv が扱う Java を追加していくjenv global
やjenv local
コマンドを使って用いる Java のバージョンを切りかえる
具体的な流れ
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 の各バージョンをインストールしていく
たとえば、Java 8 のインストールは次のとおりとなります*1。利用したいバージョンの Java をインストールしていきます*2。
$ sudo apt install openjdk-8-jdk
3. jenv add
コマンドを使って jenv が扱う Java を追加していく
rbenv や goenv とは異なり、jenv versions
に出てくるバージョン一覧にバージョン番号を追加するためには、jenv add
というコマンドを実行して明示的に追加する必要があります。指定する場所は、各バージョンが実際に入っているディレクトリです。
各バージョンが実際に入っているディレクトリは、Ubuntuでは /usr/lib/jvm
配下に存在します。たとえば、Java 8 と Java 11 が入っている場合は以下のように ls コマンドが出力します。
$ cd /usr/lib/jvm $ ls -la .rw-r--r-- 2.7k root 19 7月 3:52 .java-1.8.0-openjdk-amd64.jinfo .rw-r--r-- 2.0k root 19 7月 3:21 .java-1.11.0-openjdk-amd64.jinfo lrwxrwxrwx 25 root 21 2月 1:31 default-java -> java-1.11.0-openjdk-amd64 lrwxrwxrwx 20 root 19 7月 3:52 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64 lrwxrwxrwx 21 root 19 7月 3:21 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64 drwxr-xr-x - root 13 10月 10:11 java-8-openjdk-amd64 drwxr-xr-x - root 22 9月 14:00 java-11-openjdk-amd64
java-8-openjdk-amd64
や java-11-openjdk-amd64
が「各バージョンが実際に入っているディレクトリ」です。これらを jenv add
して jenv versions
コマンド実行時にリストに出てくるようにしましょう。
$ jenv add /usr/lib/jvm/java-8-openjdk-amd64 openjdk64-1.8.0.222 added 1.8.0.222 added 1.8 added $ jenv add /usr/lib/jvm/java-11-openjdk-amd64 openjdk64-11.0.4 added 11.0.4 added 11.0 added 11 added
あらためて jenv versions
をすると、jenv add
したバージョンがリストに加わっています*3。
$ jenv versions * system (set by /home/USERNAME/.jenv/version) 1.8 1.8.0.222 11 11.0 11.0.4 openjdk64-1.8.0.222 openjdk64-11.0.4
4. jenv global
や jenv local
コマンドを使って用いる Java のバージョンを切りかえる
ここまでできたならば、rbenv や goenv と同様に、jenv global
や jenv local
コマンドを用いてバージョンを切り替えることができます。以下、例です。
$ mkdir jenv_test $ cd jenv_test $ jenv local 1.8 $ java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) $ jenv local 11 $ java -version openjdk version "11.0.4" 2019-07-16 OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3) OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)
参考
Mac については以前に記事に書きました。