macOSでJavaをディレクトリーごとに切り替える
ゴール
環境
macOS Sierra 10.12.3
jenvのインストール
ディレクトリーごとに切り替えられるようにするために、jenvをインストールします。
ただ、Java以外にも切り替えたいものがたくさんあるので、僕はanyenvでjenvをインストールしています。
anyenvのインストール:
$ git clone https://github.com/riywo/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile $ echo 'eval "$(anyenv init -)"' >> ~/.your_profile $ exec $SHELL -l
jenvのインストール:
$ anyenv install jenv $ exec $SHELL -l
$ anyenv version jenv: system (set by /Users/user1/.anyenv/envs/jenv/version)
Javaのインストール
jenvからはJavaをインストールできないため、Homebrew Caskで入れます。
ちなみに、MacでJDKが入る場所は3種類あり、Caskで入れた場合は2の /Library/Java/JavaVirtualMachines
に入ります。
MacにおけるJDKのインストールパスは実は3種類あります。
1. /System/Library/Java/JavaVirtualMachines
2. /Library/Java/JavaVirtualMachines
3. /Users/yourname/Library/Java/JavaVirtualMachinesそれぞれ、
1. Apple JDKのパス
2. 追加でインストールするJDKのパス
3. ユーザー毎にインストールするJDKのパス
という役割になっているみたいです。
(引用元:MacにJDK7をインストールしたからといってAppleのJDK6を消してはいけない - 北村聡士のブログ)
Homebrew Caskとversionsのインストール:
$ brew tap caskroom/cask $ brew tap caskroom/versions
JDKの最新版のインストール:
$ brew cask install java
$ java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
ちなみに、java7は今現在は caskroom/versions からインストールできなくなっていますね。
Oracleのサイトでログインが必要になったとか・・・。
java7 download fails · Issue #3902 · caskroom/homebrew-versions · GitHub
Remove java7 by commitay · Pull Request #3914 · caskroom/homebrew-versions · GitHub
すべてのインストール済みバージョンの確認:
$ /usr/libexec/java_home -V Matching Java Virtual Machines (1): 1.8.0_131, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
jenvで複数バージョンのJavaを管理
インストールしたJDKをjenvに登録
指定するパスは java_home
コマンドで表示されたパスです。
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
確認
$ jenv versions * system (set by /Users/user1/.anyenv/envs/jenv/version) 1.8 1.8.0.131 oracle64-1.8.0.131
システムデフォルトのバージョンを設定
$ jenv global oracle64-1.8.0.131
特定ディレクトリーのバージョンを設定
$ cd ~/dev/java_project $ jenv local oracle64-1.8.0.131
参考情報
macOS Sierra に anyenv で jenv をインストールし Java を管理してみる - 時と場合によりけり