javav () {
local version="$1"
shift
case "$version" in
8) JAVA_HOME='/Library/some/path/java' \
PATH="$JAVA_HOME/bin:$PATH" java "$@"
;;
8.7) JAVA_HOME='/Library/some/other/path/java' \
PATH="$JAVA_HOME/bin:$PATH" java "$@"
;;
9) JAVA_HOME='/Library/some/other/path2/java' \
PATH="$JAVA_HOME/bin:$PATH" java "$@"
;;
*) printf 'Unknown java version: %s\n' "$version" >&2
return 1
esac
}
Esta é uma função do shell, javav (renomeie se entrar em confronto com qualquer ferramenta existente). Você colocaria isso em seu arquivo .bash_profile ou .bashrc , ou em seu próprio arquivo (caso em que você precisaria usar source filename ).
Ele usa um número de versão como seu primeiro argumento e define JAVA_HOME para o caminho do diretório apropriado e PATH para incluir $JAVA_HOME/bin no início antes de executar java com os argumentos de linha de comando restantes. Já que o executável java presumivelmente vive em $JAVA_HOME/bin e como isso é o primeiro no PATH , essa é a versão Java que será iniciada.
Isso significa que você usa isso assim:
$ javav 9 other arguments to java here
Supondo que a função foi configurada com o diretório JAVA_HOME correto e PATH , isso deve iniciar o Java 9 e passar other arguments to java here para o executável java .
Observação: não sou um desenvolvedor de Java e não sei se faz sentido definir PATH como faço acima, mas você pode modificá-lo para atender às suas necessidades.