No Ubuntu, é possível ter várias JVMs ao mesmo tempo. O padrão é selecionado com update-alternatives
. Mas isso não define a JAVA_HOME
variável de ambiente, devido a uma política debian .
Estou escrevendo um script do iniciador (bash), que inicia um aplicativo java. Este aplicativo java precisa da JAVA_HOME
variável de ambiente. Então, como obter o caminho da JVM atualmente selecionado por update-alternatives
?
echo $(readlink -f /usr/bin/java | sed "s:bin/java::")
, a saída foi/usr/lib/jvm/java-7-oracle/jre/
e não #/usr/lib/jvm/java-7-oracle/
A solução da danadam pode ser facilmente adotada para recuperar o caminho do JDK (ou seja, não JRE), conforme necessário:
fonte
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
Na
.bashrc
era útil para mim.fonte
Então, você está dizendo que esse comando não faz nada para você?
fonte
Eu instalei o java com
e depois encontrar a localização
fonte
Como uma extensão dos danadams, responda:
Primeiro, instale o 2º Java JRE como a 3ª opção java, com prioridade "3":
Em seguida, você pode listá-los:
Você pode definir a alternativa manualmente, usando o seguinte:
Em seguida, seu script pode configurá-lo rapidamente, da seguinte maneira:
Isso ilustra melhor o que o comando 'sed' está fazendo. Embora você ainda precise definir os links para javaw e javac, etc, cada um feito separadamente.
fonte
Há um tempo atrás, criei um tutorial no fórum Ubuntu sobre como instalar o JRE / JDK mais recente no site Java. Ele também aborda como ativá-lo em todo o sistema, adicionando o local JRE / JDK à variável PATH. Se desejar, você também pode adicionar JAVA_HOME ao script, mencionado no final do tópico.
Confira: http://ubuntuforums.org/showthread.php?t=1437100
fonte
Se o java estiver configurado com
update-alternatives
ou foi adicionado à sua variável PATH manualmente, não"/usr/bin/java"
será necessário codificar . Eu uso esta solução no meu .bashrc:export JAVA_HOME=$(readlink -m $(which java)/../..)
fonte