Script incrível para alterar as versões do Java

Notei este post
https://coderwall.com/p/2klgtg
e decidi que deveria colocar da maneira que gosto para mudar minhas versões java.

Originalmente, participei desse estouro de pilha em algum lugar, mas ajustei um pouco para funcionar melhor.

Basicamente, eu apenas adiciono os seguintes trechos ao meu arquivo Mac OSX ~ / .profile.

#!/bin/bash

alias java_ls='/usr/libexec/java_home -V 2>&1 | grep -E "d.d.d_dd" | cut -d , -f 1 | colrm 1 4 | grep -v Home'

function java_use() {
export JAVA_HOME=$(/usr/libexec/java_home -v $1)
export PATH=$JAVA_HOME/bin:$PATH
java
-version
}

e recarreguei meu perfil executando source ~/.profileno terminal

Então, como faço para usá-lo?

Bem, basta executar
java_ls
no terminal e você obterá uma lista completa dos java_home’s instalados disponíveis em sua máquina, assim …

tom@Toms-iMac:~/dev$ java_ls
1.7.0_25
1.7.0_21
1.7.0_13
1.6.0_43-b01-447
1.6.0_43-b01-447

Mas como faço para alterar minha versão atual do java?
Bem, simplesmente execute

java_use java_version

Por exemplo, se você quiser mudar para usar o java jdk 1.6, você simplesmente escreveria

java_use 1.6

ou se você quiser mudar para java jdk 1.7.0_21 você simplesmente escreveria

java_use 1.7.0_21.

Você também poderia ter usado apenas se não se importasse de escolher a revisão de patch mais recente do java 1.7 que você instalou. java_use 1.7

Executar este comando também produzirá o no final para que você saiba com qual jdk está trabalhando, assim …java -version

tom@Toms-iMac:~/dev$ java_use 1.7
java version
"1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Então, como isso funciona?

Existe um java_homeexecutável que permite listar os diretórios iniciais java disponíveis / instalados e mostrar / definir o atual java_home. O alias faz uma boa massagem em sua saída para torná-la melhor nos resultados. Ele também pode ter um parâmetro para permitir que você defina isso como sua casa java. Basicamente, é incrível e funciona.

Por que isso é melhor do que outras soluções?

Você não precisa ficar atualizando este script toda vez que instalar uma nova versão / patch / revisão do jdk.

Tom

Respostas relacionadas:

Como verificar se o JDK é de 32 bits ou 64 bits?