web-dev-qa-db-pt.com

Como configurar o Java_HOME no Linux para todos os usuários

Eu sou novo no sistema Linux e parece haver muitas pastas Java. 

Java -version me dá:

  • Versão Java "1.7.0_55"
  • Ambiente de tempo de execução OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • Servidor OpenJDK de 64 Bits VM (compilação 24,51-b03, modo misto)

Quando estou tentando construir um projeto Maven, estou recebendo erro:

Error: Java_HOME is not defined correctly.
We cannot execute /usr/Java/jdk1.7.0_05/bin/Java

Você poderia, por favor, me dizer quais arquivos eu preciso modificar para usuário root e não-root e onde exatamente o Java está localizado?

113
Amruta
  1. find /usr/lib/jvm/Java-1.x.x-openjdk
  2. vim /etc/profile

    Prefender Sudo se estiver logado como usuário não privilegiado, ou seja. Sudo vim

  3. Pressione 'i' para entrar no modo de inserção
  4. adicionar:

    export Java_HOME="path that you found"
    
    export PATH=$Java_HOME/bin:$PATH
    
  5. saia e faça login novamente, reinicialize ou use source /etc/profile para aplicar as alterações imediatamente em seu Shell atual
234
That Dave Guy

Para todos os usuários, eu recomendaria colocar a seguinte linha em /etc/profile

export Java_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

Isso será atualizado dinamicamente e funcionará bem com o alternatives system. Observe que a atualização só ocorrerá em um novo Shell de login.

75
Eero Aaltonen

Você poderia usar/etc/profile ou melhor um arquivo como /etc/profile.d/jdk_home.sh

export Java_HOME=/usr/Java/jdk1.7.0_05/

Você tem que lembrar que este arquivo só é carregado com novos shells de login. Então, depois do bash -l ou de uma nova sessão do gnome, e isso não muda com as novas versões do Java.

28
flob

Nenhuma das outras respostas foi "persistente" para mim no RHEL 7, mesmo configurando Java_HOME e PATH diretamente em /etc/profile ou ~/.bash_profile não funcionaria. Cada vez que eu tentava verificar se Java_HOME estava definido, ele ficava em branco:

$ echo $Java_HOME
    (<-- no output)

O que eu tive que fazer foi configurar um script em /etc/profile.d/jdk_home.sh:

#!/bin/sh
export Java_HOME=/opt/ibm/Java-x86_64-60/
export PATH=$Java_HOME/bin:$PATH

Eu inicialmente negligenciei a primeira linha (o #!/bin/sh), e não funcionará sem ela.

Agora está funcionando:

$ echo $Java_HOME
/opt/ibm/Java-x86_64-60/
22
Kyle Falconer

É muito fácil definir o caminho no Linux. Faça o seguinte:

Passo-1Abra o terminal e digite Sudo gedit .bashrc

Passo-2Ele irá pedir sua senha. Depois de digitar a senha, ele abrirá o arquivo bash. Então vá para o final e digite abaixo 

etapa 3 

      export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/

      export  PATH="$PATH:$Java_HOME/bin"

passo-4Em seguida, salve o arquivo e saia do arquivo

Acima é para um único usuário. Para todos os usuários, você deve seguir as etapas abaixo

passo 1 gedit /etc/profile

Passo 2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/

Passo 3 export PATH=$PATH:$Java_HOME/bin

Espero que isto ajude. Obrigado!

9
PyDevSRS

Fazendo o que a Oracle faz (como ex-funcionário da Sun, não consigo me acostumar com isso)

ln -s latestJavaRelease/usr/Java/default
Onde latestJavaRelease é a versão que você deseja usar

em seguida, exporte Java_HOME =/usr/Java/default

5
Steve S

A resposta é dada posts anteriores é válida. Mas nenhuma resposta é completa com relação a: 

  1. Mudar o/etc/profile não é recomendado simplesmente por causa do motivo (como indicado em/etc/profile):
  • Não é uma boa ideia alterar este arquivo, a menos que você saiba o que está fazendo. É muito melhor criar um script shell custom.sh em /Etc/profile.d/ para fazer alterações personalizadas em seu ambiente, já que isso Impedirá a necessidade de mesclar em futuras atualizações. *
  1. Então, como dito acima, crie o arquivo /etc/profile.d/custom.sh para mudanças personalizadas.

  2. Agora, para manter sempre atualizado com as versões mais recentes do Java que está sendo instalado, nunca coloque o caminho absoluto, em vez disso, use:

#if fazendo jdk como home de Java

exporte Java_HOME = $ (readlink -f /usr/bin/javac | sed "s:/bin/javac ::")

OR

#if fazendo jre como Java home

exporte Java_HOME = $ (readlink -f/usr/bin/Java | sed "s:/bin/Java ::")

  1. E lembre-se de ter#!/bin/bashno arquivo custom.sh
3
alok ailawadi

Copie o caminho do arquivo bin instalado

"SEU CAMINHO"

abra o terminal e edite o arquivo de ambiente digitando o seguinte comando,

"Sudo nano/etc/environment"

Nesse arquivo, adicione a seguinte linha (substituindo YOUR_PATH pelo caminho apenas copiado):

Java_HOME = "YOUR_PATH"

Isso deve ser suficiente para definir a variável de ambiente. Agora recarregue este arquivo:

"source/etc/environment"

agora teste-o executando:

echo $ Java_HOME

2
VirangaMahesh

No Linux eu adiciono esta linha ao meu ~/.profile:

export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
2
Emanuel Oliveira

Postar como resposta, pois não tenho o privilégio de comentar.

Ponto a nota : siga a resposta aceita postada por "That Dave Guy".

Depois de definir as variáveis, certifique-se de definir as permissões apropriadas para o diretório Java onde está instalado.

chmod -R 755 /usr/Java
1
Van Peer

Enquanto estivermos prontos para configurar o Java_HOME, deixe-me compartilhar alguns benefícios da configuração do Java_HOME ou de qualquer outra variável de ambiente:

1) É fácil atualizar o JDK sem afetar a inicialização do seu aplicativo e o arquivo de configuração que aponta para o Java_HOME. você só precisa baixar a nova versão e certificar-se de que seu Java_HOME aponta para a nova versão do Java. Esse é o melhor benefício de usar variáveis ​​ou links de ambiente.

2) A variável Java_HOME é curta e concisa, em vez de caminho completo para o diretório de instalação do JDK.

3) A variável Java_HOME é independência de plataforma, ou seja, se seu script de inicialização usa Java_HOME, ele pode ser executado no Windows e UNIX sem qualquer modificação, você só precisa configurar o Java_HOME no sistema operacional respectivo.

Leia mais: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

1
guest

Etapa 1 - verifique a versão atual do Java por "echo $ Java_HOME"

Passo 2 - vim/etc/profile

Passo 3 - No final do arquivo você encontrará Export Java_HOME, precisamos fornecer o novo caminho aqui, certifique-se de que não é relativo.

Passo 4 - Salve e saia: wq

Passo 5 - "source/etc/profile /", isso executaria a mudança

Passo 6 - Novamente faça um echo $ Java_HOME - a mudança teria sido refletida.

0
swapnil shashank

Basta adicionar este comando ao seu dockerfile

RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
0
Dashrath Mundkar

Este é um script muito simples para resolver o problema

export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`

E para testes:

echo $Java_HOME
0
Dylan Breugne

Provavelmente, é uma boa idéia fornecer qualquer perfil que você edite para economizar ao ter que usar um novo login.

ou: fonte /etc/ors./etc /

Onde está o perfil que você editou.

0
Bryant Bernstein