takmnagayaのブログ

メモ、書きたくなったことなど思うがままに残す

Javaをjenvを使ってMacにインストールする

もともとRubyしかやってこなかったのに、所用でJavaの開発が必要になったので、急遽、MacJavaをインストールしてみた。
ただ、闇雲にインストールしてJavaのバージョンが違うとか言われたら面倒なので、
JavaにもRubyのバージョンパッケージ管理ツールrbenv的なのがないかと思ったら、jenvというのがあるみたいなので使ってみた。

環境

下記環境で開発環境を設定した。

  • MacOS Sierra バージョン10.12.2
  • homebrewインストール済み

Javaインストール

Javaバージョン管理ツールのインストール

今回はJava1.7をインストールする必要があったが、別のバージョンをインストールするときに既存のコードに影響を与えないようにJavaバージョン管理ツール、jenvを先にインストールする。

brew install jenv

使用しているシェルがZshの場合

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

使用しているシェルがBashの場合

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

これでjenvの設定は完了。jenv versionsコマンドでjavaのバージョン情報が表示される。

jenv versions
# Javaはインストールしていないので、javaのバージョン情報は表示されない
* system (set by ~/.jenv/version)

Java1.7をインストール

brewでインストールできるjavaのパッケージがないか検索する。

brew search java
# いくつかjavaという名前の含まれるパッケージが表示される。
...
Caskroom/cask/java
Caskroom/versions/java6
Caskroom/versions/java7 # これが目的のパッケージ

Caskroom/versions/java7 が目的のパッケージなので、下記コマンドでインストールする。

brew cask install java7

再度jenv versionsコマンドで確認。

jenv versions
* system (set by ~/.jenv/version)
  1.7
  1.7.0.80
  oracle64-1.7.0.80

Java1.7.0.80を基本的に使用していくので、Mac全体で使用するJavaのバージョンを1.7.0.80に指定

jenv global 1.7.0.80
jenv versions       
  system
  1.7
* 1.7.0.80 (set by /Users/nagayatakumi/.jenv/version) # 1.7.0.80がデフォルトのバージョンになっている
  oracle64-1.7.0.80

通常のJavaのバージョン確認コマンドjava -versionで確認しても正しく1.7.0_80が指定されている。

java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

この後、別のバージョンのJavaをインストールしても、Mac全体で使用するJavaのバージョンは変わらない。

brew cask install java 
jenv versons
  system
  1.7
* 1.7.0.80 (set by /Users/nagayatakumi/.jenv/version)
  1.8 # 1.8が新しくインストールされた。
  1.8.0.112
  oracle64-1.7.0.80
  oracle64-1.8.0.112

これでバージョンの違いとか気にせず、Javaの開発ができる! まあ、Javaのこと全然わからないのでこれから色々勉強しないといけないんですが...