Qual é o valor de JAVA_HOME para o CentOS?

35

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á!

    
por Rory 06.08.2009 / 14:44

6 respostas

52

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

    
por 06.08.2009 / 14:49
19

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 :

Instalar o Java

Baixe e instale o Java JDK da Oracle

Tornar primário

Certifique-se de que este Java seja usado em vez da versão do OpenJDK usando os dois comandos a seguir:

Primeiro

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

Segundo

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

Definir JAVA_HOME

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
    
por 06.08.2009 / 15:16
2

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.

    
por 06.08.2009 / 15:12
2

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

    
por 26.07.2014 / 19:14
1

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 .

    
por 23.06.2015 / 05:24
0

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.

    
por 06.08.2009 / 14:56