Mac で Java の開発をしており、(IDEではなく)ターミナルから mvn などのコマンドを実行しており、しかも direnv を愛用という人は、僕以外にも何人かいるはずです。
そんな人は、.envrc
(direnv edit .
で編集できる)で、以下のようにバージョン指定できると便利ですよね?
use java 8
以下の関数を ~/.direnvrc
に定義してください。
use_java() {
if [ "$#" -ne 1 ]; then
echo "usage: use java VERSION" >&2
return 1
fi
local v
v="$1"
if [ "$v" -le "8" ]; then
v="1.$v"
fi
export JAVA_HOME="$(/usr/libexec/java_home -v "$v")"
}
- direnv は
use_xxx
関数をuse xxx
の形で呼べる - Javaのバージョンを切り替えるには環境変数
$JAVA_HOME
を定義すれば良い - Mac では
/usr/libexec/java_home
でインストールされた各JavaのHomeディレクトリを参照で
というのを実装しているだけです。