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.