使用 direnv 进行 Java 的切换
direnv是一个可以根据目录切换环境变量的工具,非常适用于同时并行开发多个项目的情况。
如果你使用Mac的话,在~/.direnvrc文件中定义以下函数就可以…
# ~/.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")"
PATH_add $JAVA_HOME/bin
}
在每个项目中,只需要按照这种方式写就可以。
# [プロジェクトのディレクトリ]/.envrc
use_java 11 # JDK 11 を使う
顺便提一下,direnv 还有一个(微妙但)方便的功能,可以将 use_hoge 写成 use hoge ,如下所示。
use java 11
此外,除了Java语言之外,其他语言也提供了use方法的标准支持。
https://github.com/direnv/direnv/blob/master/stdlib.sh 和 https://github.com/direnv/direnv/blob/master/man/direnv-stdlib.1.md 的内容,请以中文中最自然的方式转述。