- As definições de variáveis em uma janela de terminal não estão no escopo de outras janelas de terminal. Para definir uma variável em todas as janelas do terminal, você precisa adicioná-la a um arquivo de configuração do shell. Normalmente, isso será
~/.bashrc
, sendo o Bash o shell padrão na maioria das distros. Você pode adicionar uma linha comoexport JAVA_HOME=/some/path
para tornar a variávelJAVA_HOME
disponível para todos os shells e scripts correr nessas conchas. (Ele só está disponível em shells abertos após salvar~/.bashrc
; se você quiser que ele esteja disponível em um terminal já aberto, simplesmente executeexec "$SHELL"
para reiniciar seu shell. -
which java
procura um executável chamadojava
nos caminhos separados por dois pontos contidos noPATH
variável, não importa qual seja o valor deJAVA_HOME
. -
JAVA_HOME
é usado por aplicativos Java , não pelo shell ou pelo terminal. A Oracle descreve como:An environment variable used to trigger the 'java' found in your PATH to use a different JDK image. Unfortunately, not all 'java' startup scripts obey this env variable. It's also used by many java tool startup scripts to determine what 'java' to run, bypassing the 'java' found in the PATH setting. Setting this variable during a JDK build is a bad idea, don't do it.
- A dica sobre
java
estar disponível em vários pacotes significa que o diretório do executáveljava
(provavelmente/usr/local/jdk1.8.0_20/bin
no seu caso) não está na variávelPATH
e pode ser instalado a partir dos pacotes de distribuição listado. Você precisará adicionar o diretório à variávelPATH
comoexport PATH="$PATH"':/usr/local/jdk1.8.0_20/bin'
em um arquivo de inicialização do shell, como acima.
Isso esclarece as coisas?