Eu instalei o java através do yum no CentOS, porém outro programa java precisa saber qual é a variável de ambiente JAVA_HOME. Eu sei tudo sobre a configuração de variáveis ambientais, mas o que eu configuro? java
está instalado em /usr/bin/java
, não pode estar lá!
Na verdade eu encontrei,
é
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/
. Eu descobri o que era fazendoupdate-alternatives --display java
e me mostrou o diretório/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
Não tenho certeza, mas se você instalar o RPMS normal, o valor JAVA_HOME também pode ser definido para isso:
EDIT: Acabei de verificar no meu sistema doméstico. Eu criei este arquivo:
Isso contém:
e estou usando a versão oficial da Sun: jdk-1.6.0_12-fcs
EDIT: Aqui está como eu configurei o Java na minha máquina :
Instale Java
Baixe e instale o Java JDK da Oracle
Torná-lo primário
Certifique-se de que este Java seja usado em vez da versão OpenJDK usando os dois comandos a seguir:
Primeiro
Segundo
Definir JAVA_HOME
Certifique-se de que todos os usuários tenham sua variável de ambiente JAVA_HOME definida com o valor correto:
Você deseja definir JAVA_HOME para ser o local raiz do JDK ou JRE, por exemplo:
Se o JDK (kit de desenvolvimento) estiver instalado, você provavelmente deseja que ele aponte para isso, caso contrário, use o caminho JRE (Java Runtime Environment). Então, você pode querer definir sua variável de ambiente $PATH para incluir o diretório bin também:
Se você estiver usando o tomcat, talvez seja necessário definir CATALINA_HOME para o usuário do tomcat.
Para definir isso para o sistema, você deseja editar seu /etc/profile ou adicionar um arquivo .sh na pasta /etc/profile.d. Para um usuário em particular, você pode colocá-lo nos arquivos ~/.profile ou ~/.bash_profile dos usuários.
Abaixo está sempre funcionando perfeitamente para mim:
Isso significa que posso definir JAVA_HOME como /usr/java/jdk1.6.0_31
Eu considerei o problema de se alguém alterar a versão do java que está sendo usada com:
Então, qualquer código rígido
JAVA_HOME
vai mudar (pelo menos no Centos 6.6 que estou olhando no momento). Ou seja, não há/usr/java
.Isso não parece ser o melhor caminho (aberto a falhas), mas nos 10 minutos que passei nisso parece o melhor.
Em
/etc/bashrc
eu modifiquei a configuraçãoJAVA_HOME
para ser:Você tem que fazer algo semelhante no MacOSX, mas sem todo o
grep
esed
para analisar o resultado. Certamentealternatives
oferece uma solução igualmente mais fácil.De qualquer forma espero ter ajudado.
Atualizar
Não isso seria
JRE_HOME
. O JDK / SDK não está se mostrando tão óbvio (vou continuar procurando).O
alternatives
parece ser apenas sobre o JRE por padrão. Eu adio a resposta do @Niels ou apenas instalo o Javayum
e defino o JAVA_HOME para isso (o truque é onde encontrei onde foi instalado!).Percebi que
java_1.8.0
é um link simbólico para/etc/alternatives/java_sdk_1.8.0
e, portanto, defina meu $ JAVA_HOME como/usr/lib/jvm/java_1.8.0
. No/etc/bashrc
.Isso é estranho, o objetivo de ter uma variável de ambiente JAVE_HOME é para que você não precise especificar o caminho para cada programa, ele pode obter esse caminho procurando por essa variável.
De qualquer forma, a maneira correta de encontrar a variável de ambiente para JAVA_HOME é usar echo:
A execução deste comando exibirá o caminho, independentemente da versão em execução, na linha de comando.
re: Centos7, consulte o arquivo /etc/java/java.conf.
nele JAVA_HOME é indicado para estar localizado no seguinte diretório: /usr/lib/jvm/java
eu verifiquei, é a versão correta do jdk que carreguei via yum, e então...
meu env não tem JAVA_HOME definido por padrão, portanto, eu o defino em .bash_profile
Descobri que o gerenciador de pacotes pode ser colocado em vários locais, portanto, usando o qual (você precisará instalar isso explicitamente se estiver usando um contêiner), o seguinte é um pouco menos frágil
ou para JRE