2020/01/25時点で他のQiita記事が古くてちゃんと動作しない&公式ドキュメントと違うので記述
前提
環境
macOS Mojave 10.14.6で確認
~/.jenv を作成する
mkdir ~/.jenv
jenvのインストール
1. homebrewを利用する場合
brew install jenv
2. git からcloneする場合
git clone https://github.com/jenv/jenv.git ~/.jenv
2-1. bash
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
2-2. zsh
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
シェルの再起動
やり方
- ターミナルを再起動する
or - exec $SHELL -l
jenvの動作確認
jenv doctor
ちゃんと動く場合、以下のアウトプットが出る
[OK] No JAVA_HOME set
[ERROR] Java binary in path is not in the jenv shims.
[ERROR] Please check your path, or try using /path/to/java/home is not a valid path to java installation.
PATH : /Users/user/.jenv/libexec:/Users/user/.jenv/shims:/Users/user/.jenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
[OK] Jenv is correctly loaded
JAVA_HOMEの設定確認
echo ${JAVA_HOME}
jenv enable-plugin export
exec $SHELL -l
Java環境のインストール
Java環境をbrew caskでインストールする場合
brew cask install java
Java8の場合
brew cask install java8
Java環境を追加
jenv addを使う
jenv add $(/usr/libexec/java_home)
もちろん、以下のように直接ディレクトリを指定しても良い
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
Java環境のバージョン一覧を見る
$ jenv versions
* system (set by /Users/user/.jenv/version)
11.0
11.0.2
openjdk64-11.0.2
デフォルトでは、system JavaがJavaの最新バージョンになる。
Java環境の選択
$ jenv local 11.0.2
$ exec $SHELL -l
$ cat .java-version
11.0.2
設定されたかの確認
echo ${JAVA_HOME}
/Users/hogehoge/.jenv/versions/11.0.2
これで設定OK。
いらないので .java-versionを削除する
rm .java-version
グローバルJavaバージョンの設定
グローバルに設定したい時のみ必要
jenv global 11.0.2
シェルJavaバージョンの設定
jenv shell 11.0.2
共通ワークフロー
macOSで2つのJVMを使う
Java11.0.2がインストールされているところに、Java 8をインストールする
brew cask install adoptopenjdk8
brew cask install caskroom/versions/adoptopenjdk8
上記によって、Java 8の最新バージョンをmacOSの特別なディレクトリにインストールする
$ ls -1 /Library/Java/JavaVirtualMachines
adoptopenjdk-8.jdk
openjdk-11.0.2.jdk
adoptopenjdk-8.jdkディレクトリというのが見える。(ユーザによってこのディレクトリは変わる)
/usr/libexec/java_home からは取得できないので、 jenv addで追加する
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
openjdk64-1.8.0.222 added
1.8.0.222 added
1.8 added
$ jenv versions
* system
1.8
1.8.0.222
openjdk64-1.8.0.222
11.0
11.0.2
openjdk64-11.0.2
oracle64-1.8.0.202-ea
参考
以下を参考に、冗長なところを削除、足りないところを追加しました。
GitHub - jenv/jenv: Manage your Java environment
https://github.com/jenv/jenv
以上。