jenvを使います
前提
Mac OSX 10.11
homebrewをインストールする事
homebrewの詳細とダウンロードはこちらから>>https://brew.sh/
準備
homebrew caskroom/versions を使って複数のJavaをインストールし管理する
> brew tap caskroom/versions
> brew cask search java
==> Exact Match
java ✔
==> Partial Matches
charles-applejava java-jdk-javadoc java8 netbeans-java-se
eclipse-java java6 netbeans-java-ee yourkit-java-profiler> brew cask install java8
> brew cask install java6
これでjava6とjava8がダウンロードできます。
ちなみにjava7はオラクルアカウントを作って公式からダウンロードしないといけません(2018/01/11現在)
Oracle Javaバージョン7u25以下は、OS X上ではAppleによって無効にされています。
なのでbrewを使ってインストールする事ができなくなりました。
面倒ですがアカウント作ってインストールしてください
これができたらjavaのバージョン管理をしてくれるjenvを入れていきます。
>brew install jenv
これで準備は完了です。
jenvについて
jenvはpyenvのように複数のjavaのバージョンを持ち、切り替えをしたい時に常に便利なツールです。
jenvを使うと特定のディレクトリではjava7を、globalではjava8を使うという使いわけを可能にしてくれます。
公式はこちら>>http://www.jenv.be/
公式のinstallに従いインストールしたあとで
bashならば
$ echo ‘export PATH=”$HOME/.jenv/bin:$PATH”’ >> ~/.bash_profile
$ echo ‘eval “$(jenv init -)”’ >> ~/.bash_profile
zshならば
$ echo ‘export PATH=”$HOME/.jenv/bin:$PATH”’ >> ~/.zshrc
$ echo ‘eval “$(jenv init -)”’ >> ~/.zshrc
をしてshellの設定ファイルに対しての記載をしてください。jenvへ各種バージョンを追加してください。
> jenv add $(/usr/libexec/java_home -v 1.7)
> jenv add $(/usr/libexec/java_home -v 1.8)
追加されたバージョン確認をするには`jenv -versions`で確認できます。
> jenv versions
system
1.7
1.7.0.80
* 1.8 (set by /Users/hogehoge/.jenv/version)
1.8.0.131
oracle64–1.7.0.80
oracle64–1.8.0.131
システム全体で使うバージョンを設定する
システム全体でjava8を使うので
> jenv global 1.8
としてjava8に設定をします。
確認
> 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を使う場合
> mkdir hoge-java7
> cd hoge-java7
> jenv local java7
これでhoge-java7ディレクトリではjava7が有効になります
シェルの起動
> jenv exec zsh
JAVA_HOMEが自動で設定させるようにする
jenv は 環境変数JAVA_HOMEを 設定しません。
自動的に JAVA_HOME が設定されるようにするには
enable-plugin export
を設定します。
僕はこの処理をしなくてjava7を使っているディレクトリで実行処理をした時にjava8のJAVA_HOMEを使おうとしてエラーになっていたので気をつけてください。
解除したい時には`disable-plugin export` で解除できます。