Mac に Java JDK を複数バージョンインストールして管理する

もう絶対忘れる気しかしないのでメモ。

homebrew のインストール

万が一インストールしてなければ。
インストール方法は 公式 を参照。

brew-cask のインストール

homebrew で Java をインストールするために、brew-cask をインストールします。
Java だけでなくて、 Chrome なんかもインストールできるらしいです。 Chocolatey みたいなもんですかね?

$ brew install caskroom/cask/brew-cask

homebrew-cask-versions のインストール

さらに、 homebrew で複数バージョン管理できるように homebrew-cask-versions をインストールします。

$ brew tap caskroom/versions

JDK のインストール

ここまでで JDK のインストール準備が整いました。JDK をインストールしていきます。

$ brew cask search java
==> Exact match
java
==> Partial matches
charles-applejava       eclipse-java        java7               yourkit-java-profiler
charles-beta-applejava      java6           javafx-scene-builder

$ brew cask install java

$ brew cask install java7

$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

この時点では Java8 ですね。

jEnv のインストール

さて。じつはこの時点で JAVA_HOME を .bashrc などで切り替えれば複数バージョンの JDK を切り替えつつ利用できるのですが、正直ちょっと面倒です。
なので、 jEnv という Java 環境のマネージツールをインストールします。

$ brew install jenv

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ source .bash_profile 

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.0_60, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
oracle64-1.8.0.60 added
1.8.0.60 added
1.8 added

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
oracle64-1.7.0.79 added
1.7.0.79 added
1.7 added

$ jenv versions
* system (set by /usr/local/opt/jenv/version)
  1.7
  1.7.0.79
  1.8
  1.8.0.60
  oracle64-1.7.0.79
  oracle64-1.8.0.60

jEnv を使ってバージョン切り替え

$ jenv global oracle64-1.7.0.79

$ jenv global
oracle64-1.7.0.79

$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

簡単に切り替えることが出来ました!

参考

qiita.com stackoverflow.com