Na verdade eu achei,
é /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/
. Eu descobri o que estava fazendo update-alternatives --display java
e ele me mostrou o diretório /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
Eu instalei o java através do yum no CentOS, no entanto, outro programa java precisa saber qual é a variável ambiental JAVA_HOME. Eu sei tudo sobre como configurar variáveis ambientais, mas o que eu defino? java
está instalado em /usr/bin/java
, não pode estar lá!
Não tenho certeza, mas se você instalar o RPMS normal, o valor JAVA_HOME também poderá ser definido como:
/usr/java/default/
EDIT: Acabei de verificar no meu sistema em casa. Eu criei este arquivo:
/etc/profile.d/java.sh
que contém:
export JAVA_HOME=/usr/java/default/
e estou usando a versão oficial do Sun: jdk-1.6.0_12-fcs
EDIT: Aqui está como configuro o Java no minha máquina :
Baixe e instale o Java JDK da Oracle
Certifique-se de que este Java seja usado em vez da versão do OpenJDK usando os dois comandos a seguir:
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
Certifique-se de que todos os usuários tenham suas variáveis de ambiente JAVA_HOME definidas para o valor correto:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
Você deseja configurar o JAVA_HOME para ser o local raiz do JDK ou do JRE, por exemplo:
export JAVA_HOME=/usr/java/jdk1.3
Se o JDK (kit de desenvolvimento) estiver instalado, provavelmente o ypu quer apontar para isso, senão use o caminho do JRE (Java Runtime Environment). Então, você pode querer definir sua variável de ambiente $ PATH para incluir o diretório bin também:
export PATH=$PATH:/usr/java/jdk1.3/bin
Se você estiver usando o tomcat, talvez seja necessário definir CATALINA_HOME para o usuário do tomcat.
export CATALINA_HOME=/path/to/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 trabalhando de forma perfeita:
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
Isso significa que posso definir o JAVA_HOME como /usr/java/jdk1.6.0_31
Eu considerei o problema de se alguém altera a versão do java sendo usada com:
alternatives --config java
Então qualquer JAVA_HOME
codificado será alterado (pelo menos no Centos 6.6 que estou olhando atualmente). Ou seja, não há /usr/java
.
Isso não parece ser o melhor caminho (aberto ao fracasso), mas nos 10 minutos que passei, parece o melhor.
Em /etc/bashrc
I modifiquei a configuração para JAVA_HOME
:
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
Você precisa fazer algo semelhante no MacOSX, mas sem todos os grep
e sed
para analisar o resultado. Certamente alternatives
oferece uma solução similarmente mais fácil.
De qualquer forma, espero ter ajudado.
Atualizar
Não, isso seria JRE_HOME
. O JDK / SDK não está sendo tão óbvio (continuarei procurando).
O alternatives
parece ser apenas sobre o JRE por padrão. Eu adio a resposta do @Niels ou apenas instale o Java com yum
e configure o JAVA_HOME para isso (o truque é onde eu encontrei onde ele foi instalado!).
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
Percebi que java_1.8.0
é um link simbólico para /etc/alternatives/java_sdk_1.8.0
e, portanto, configurei meu $ JAVA_HOME para /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 esta variável.
De qualquer forma, a maneira correta de encontrar a variável ambiental para JAVA_HOME é usar echo:
[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09
A execução deste comando exibirá o caminho, independentemente da versão que estiver sendo executada, na linha de comando.