Questão Como definir JAVA_HOME para Java?


Eu instalei uma versão do Java. Como podemos definir o $JAVA_HOME variável de ambiente corretamente?


249
2017-08-13 22:31


origem




Respostas:


Você pode definir seu JAVA_HOME dentro /etc/profile Como Petronilla Escarabajo sugere. Mas o local preferido para JAVA_HOME ou qualquer variável do sistema é /etc/environment.

Aberto /etc/environment em qualquer editor de texto como nano ou gedit e adicione a seguinte linha:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(caminho java pode ser diferente)

Usar source para carregar as variáveis, executando este comando:

source /etc/environment

Em seguida, verifique a variável, executando este comando:

echo $JAVA_HOME

Atualizar

Normalmente, a maioria dos sistemas Linux fornece o / etc / environment por padrão. Se o seu sistema não fizer isso, adicione a seguinte linha para ~/.bashrc (Obrigado @pje)

source /etc/environment

345
2017-08-14 02:17



Estou obtendo: JDK Requerido: 'tools.jar' parece não estar no caminho de classe IDEA. Por favor, garanta que JAVA_HOME aponte para JDK ao invés de JRE. - anon58192932
@advocate - Você provavelmente deve postar sua própria pergunta para isso. Mas a pista está na mensagem; você precisa apontar para um JDK e não para um JRE. - David Edwards
Quando eu tentei rodar o Android Studio (que tem como base o IntelliJ IDEA), eu tive uma mensagem de erro muito semelhante à do @ advocate: "'tools.jar' parece não estar no classpath do Android Studio." Depois de mexer muito com JAVA_HOME sem sucesso, decidi dar uma olhada no studio.sh, o shellscript que inicia o Android Studio. Como um palpite, configurei JDK_HOME para o mesmo valor esperado para JAVA_HOME e voila! Instalou sem grandes problemas. - Hilton Fernandes
Para aqueles que estão fazendo o desenvolvimento de software, não coloque seu JAVA_HOME em / etc / environment a menos que você queira reinicializar toda vez que você trocar as versões do JDK. - HDave
Como outros salientaram, isso não fica entre as sessões de terminal. O que eu fiz para resolver isso é apenas adicionar a linha source /etc/environment para o topo do meu arquivo de configuração bash ~/.bashrc para que ele carregue todas as configurações do meu ambiente na inicialização. Trabalhando para mim até agora. - pje


Pôr JAVA_HOME variável de ambiente, faça o seguinte:

  1. Inicie o Terminal pressionando Ctrl+Alt+T no seu teclado.
  2. Digite o seguinte comando:
    $ gksudo gedit /etc/environment
  3. Dependendo de onde você instalou seu Java, você precisará fornecer o caminho completo. Para este exemplo, instalei o Oracle JDK 7 no /usr/lib/jvm/java-7-oracle diretório.
    Role até o final do arquivo e digite o seguinte:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Salve seu arquivo e saia gedit.
  5. Por último, recarregue o PATH do sistema com o seguinte comando:
    $ . /etc/environment

O método acima irá poupar o incômodo de ter que executar os comandos toda vez que você fizer login no seu computador.


67
2017-08-13 23:01



Como faz. trabalho de / etc / environment? - Sudip Bhandari
É a adição do export comando necessário no /etc/environment? - pkaramol
@pkaramol Eu tive que adicionar exportar JAVA_HOME no 16.04LTS para fazer o carregamento na inicialização. - adeen-s
@ adeen-s Você adicionou export para uma linha em /etc/environment e ajudou? Esse arquivo contém definições de variáveis ​​analisadas como =pares de nome-valor -limitados; seu conteúdo não é executado como comandos. (Vejo man pam_envEntão, a menos que você esteja separadamente tratar o arquivo como se fosse um script (por exemplo, passando /etc/environment para o bash ./source builtin), eu não esperaria que isso funcionasse. - Eliah Kagan


Se você não conhece o caminho e só tem o openJDK instalado, você pode digitar update-alternatives --config java e você deve encontrar o caminho. Para definir a variável, você pode escrever JAVA_HOME=<PATH> Seguido por export JAVA_HOME. Observe que não há espaço ao declarar a variável. Para verificar se a variável está armazenada, basta digitar echo $JAVA_HOME verificar.


30
2017-08-18 21:29



Isso parece que seria estático. Se eu remover o openjdk-7 e instalar o openjdk-9, o JAVA_HOME não irá apontar para o lugar errado? Como isso pode ser feito dinâmico? - DavidJ
Por você alterá-lo manualmente. Mais uma vez, você é o caminho que se torna dinâmico .... - HDave
O que significa @HDave é que, em certos casos, você pode querer que o JAVA_HOME aponte para uma versão java específica, portanto, fazer a atualização de JAVA_HOME dinâmica pode não ser o que você deseja. - Maciej
Eu gosto dessa resposta. Eu testei com eco e vejo meu caminho. No entanto, estou confuso porque ainda estou recebendo JAVA_HOME variável de ambiente não é definida quando executo o mvn -version - Winnemucca
Eu escrevi essa resposta quando eu era mais ignorante. Definir a variável conforme descrito só afetará sua sessão de terminal atual e não será persistido. A maneira correta é executar update-alternatives --install <link> <name> <target> <priority>  por exemplo: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro