Problema para definir JAVA_HOME

5

Em ~/.bash_profile defino o seguinte:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/bin/java
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk-i386/bin

Depois de salvar e fechar, eu corri:

sudo su
source .bash_profile

echo $PATH traz

root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-7-openjdk-i386/bin

which java é

/usr/bin/java

Mas se eu começar o smartgit, há o seguinte aviso

ip@ubuntu:/usr/share/smartgithg/bin$ ./smartgithg.sh 
Warning: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java/bin/java does not exist

Por que o 'java' não aponta para o novo java que eu instalei? E por que contém $ PATH bin/java/ duas vezes?

    
por user1662013 26.03.2014 / 09:34

3 respostas

6

Você pode selecionar a versão do java usando o comando update-alternatives .

Execute o comando abaixo no terminal.

sudo update-alternatives --config java

E digite o número de seleção que você deseja usar.

Assim:

Cuidado: A descrição acima é o procedimento para alterar uma versão padrão. Não é uma resposta desta pergunta, mas deve ajudá-lo a definir a casa JAVA

    
por byaruhaf 26.03.2014 / 09:50
0

O Ubuntu usa o sistema update-alternatives para gerenciar qual instalação do Java JDK ou JRE deve ser usada. Isso permite que você tenha várias versões do Java instaladas, mas ainda controle qual delas é usada por padrão.

É por isso que which java não mostra a versão que você instalou; /usr/bin/java é apenas um link simbólico. Se você executar ls -l /usr/bin/java , verá algo como:

lrwxrwxrwx 1 root root 22 Jul  4  2013 /usr/bin/java -> /etc/alternatives/java

e se você seguir a trilha executando ls -l /etc/alternatives/java , verá algo como:

lrwxrwxrwx 1 root root 39 Jul 15  2013 /etc/alternatives/java -> /usr/lib/jvm/java-7-oracle/jre/bin/java

mas o caminho exato dependerá de qual versão você selecionou.

Você pode selecionar qual versão do Java você deseja executar usando este comando:

sudo update-alternatives --config java

Seu caminho contém bin/java duas vezes porque você configurou $JAVA_HOME incorretamente. $JAVA_HOME deve apontar para o diretório raiz da sua instalação do Java; no seu caso, /usr/lib/jvm/java-7-openjdk-i386/ . Você estava apontando para o próprio binário java .

Não é necessário adicionar $JAVA_HOME ao seu $PATH , a menos que você esteja instalando o Java manualmente e não usando update-alternatives , porque /usr/bin já está no seu $PATH .

    
por David Edwards 28.03.2014 / 15:33
0

Você definiu incorretamente a variável JAVA_HOME no arquivo ~/.bash_profile . Altere sua variável JAVA_HOME para:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/

e depois source ~/.bash_profile

Isso deve resolver seu problema.

    
por jobin 28.03.2014 / 15:36