jenvと呼ばれるjava環境のお手軽切り替えツールがリリースされました。ruby用の環境切り替えツールRVMのJava版をイメージしてもらえば理解しやすいと思います。
ただOSとしてUnix based systemを想定しているようなので、Windowsは対象外みたいです(Mac / LinuxはOK)。
特徴
以下のような特徴があげられています。
- 1.6 / 1.7 / 1.8のようなJavaのバージョンを簡単に管理することができる。
- Ant / Maven / TomcatのようなJavaツールを簡単にインストールすることができる。
- 新しいバージョンをインストールし、古いバージョンをアンインストールするといった、バージョン管理が簡単。
- IDEフレンドリーなディレクトリ構造。
- 簡単に拡張できる。自分自身のjenvをセットアップし、開発環境を管理できる。
- 環境を簡単にバックアップできる
- Bash補完をサポート。TABを使って、コマンド名、candidate、バージョンを補完できる。
なかなか良さそうです。
インストール
インストールは簡単です。
$ curl -s get.jvmtool.mvnsearch.org | bash
初期化します。
$ source ~/.jenv/bin/jenv-init.sh
jenvコマンドのhelpは以下
jenv help
Javaのインストール
JDKの再配布が許されていないので、JDK自体は
からダウンロードして手動でいれるしかないようです。
ダウンロードしてインストールした後、以下の手順でjenvに認識させます。
$ mkdir -p $HOME/.jenv/candidates/java $ ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/home $HOME/.jenv/candidates/java/1.7.0_17 $ jenv default java 1.7.0_17
まとめ
Javaの場合バージョン間の互換性はかなり確保されているほうだと思いますが、プロジェクトごとに使用するJDKが決まっていて古いバージョンのJDKを使わざるをえない場合、簡単に環境を切り替えられるjenvの存在はかなりありがたいのではないでしょうか。
rubyのように自動でインストールまで行ってくれるわけではないのが残念ですが、Java開発の不便さをおぎなってくれるツールだと思います。
※追記
zshの場合、「source ~/.jenv/bin/jenv-init.sh」がうまく動かないかも。bashだとOKのようです。
また、インストールするとrcファイルに以下の行が追加されるので、使わない場合は削除しておきましょう。
#THIS MUST BE AT THE END OF THE FILE FOR JENV TO WORK!!! [[ -s "/Users/sora/.jenv/bin/jenv-init.sh" ]] && source "/Users/sora/.jenv/bin/jenv-init.sh" && sou\ rce "/Users/sora/.jenv/commands/completion.sh"