Como definir o Java da Oracle como o Java padrão no Ubuntu?

Como faço para alterar o valor de JAVA_HOME no Ubuntu para apontar para o Java da Oracle?

Deveria apontar para java-6-sun ou java-6-sun-1.6.0.24 ?

Eu coloquei a linha:

 export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

no meu arquivo ~/.bashrc .

/usr/lib/jvm/java7-oracle deve ser um link simbólico apontando para /usr/lib/jvm/java-7-oracle-[version number here] .

A razão pela qual é um link simbólico é que, no caso de haver uma nova versão da JVM, você não precisa atualizar seu arquivo .bashrc , ele deve apontar automaticamente para a nova versão.

Se você deseja definir variables ​​de ambiente JAVA_HOME globalmente e no nível do sistema, significa que o uso deve ser definido no arquivo / etc / environment . Para mais .

Se você quiser alterá-lo globalmente e no nível do sistema;

Dentro

 /etc/environment 

adicione esta linha:

 JAVA_HOME=/usr/lib/jvm/java-7-oracle 

Para definir o Java SE Development Kit da Oracle como o Java padrão do sistema, basta fazer o download do Java SE Development Kit mais recente e criar um diretório em seu sistema de arquivos, por exemplo, /usr/java extrair os arquivos que você acabou de baixar nesse diretório:

 $ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java 

Agora, para definir sua variável de ambiente JAVA_HOME :

 $ JAVA_HOME=/usr/java/jdk1.8.0_05/ $ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000 $ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000 

Certifique-se de que o java do Oracle está definido como java padrão por:

 $ update-alternatives --config java 

você tem algo assim:

 There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /opt/java/jdk1.8.0_05/bin/java 20000 auto mode 1 /opt/java/jdk1.8.0_05/bin/java 20000 manual mode 2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode Press enter to keep the current choice[*], or type selection number: 

preste atenção ao asterisco antes dos números à esquerda e se o correto não estiver definido, escolha o correto digitando o número e pressionando enter. Agora teste seu java:

 $ java -version 

Se você receber algo como o seguinte, você é bom para ir:

 java version "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode) 

Observe também que você pode precisar de permissão de root ou estar no grupo sudoers para poder fazer isso. Eu testei esta solução tanto no ubuntu 12.04 quanto no Debian wheezy e funciona em ambos.

Se você deseja que esta variável de ambiente esteja disponível para todos os usuários e no início do sistema, você pode adicionar o seguinte ao /etc/profile.d/java.sh (criá-lo, se necessário):

 export JDK_HOME=/usr/lib/jvm/java-7-oracle export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

Então, em uma corrida no terminal:

 sudo chmod +x /etc/profile.d/java.sh source /etc/profile.d/java.sh 

Minha segunda pergunta é – deveria apontar para java-6-sun ou java-6-sun-1.6.0.24?

Ele deve sempre apontar para o java-7-oracle como links simbólicos para o último instalado (supondo que você tenha instalado o Java dos repositorys do Ubuntu e agora do download disponível em oracle.com).

java 6

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

ou java 7

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64

Se você está fazendo algum tipo de desenvolvimento, você precisa apontar para o JDK (Java Development Kit). Caso contrário, você pode apontar para o JRE (Java Runtime Environment).

O JDK contém tudo o que o JRE tem e muito mais. Se você está apenas executando programas Java, pode apontar para o JRE ou para o JDK.

Você deve definir JAVA_HOME base no Java atual que você está usando. readlink imprimirá o valor de um link simbólico para o Java atual e sed irá ajustá-lo para o diretório JRE:

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

Se você quiser configurar o JAVA_HOME para o JDK, você deve subir mais uma pasta:

 export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::") 

Se você quiser usar uma versão específica do Java quando vários JDKs estiverem instalados, apenas a configuração de JAVA_HOME poderá não funcionar.

Você precisa usar o sudo update-alternatives --config java para definir o Java padrão.

Consulte https://askubuntu.com/questions/121654/how-to-set-default-java-version .

Veja isto ; corre

 sudo update-java-alternatives --list 

para listar todas as instalações Java em uma máquina por nome e diretório e, em seguida, executar

 sudo update-java-alternatives --set [JDK/JRE name eg java-8-oracle] 

para escolher qual JRE / JDK usar.

Se você quiser usar diferentes JDKs / JREs para cada tarefa Java, poderá executar update-alternatives para configurar um executável java por vez; você pode correr

 sudo update-alternatives --config java[Tab] 

para ver os comandos Java que podem ser configurados (java, javac, javah, javaws, etc). E depois

 sudo update-alternatives --config [javac|java|javadoc|etc.] 

associará essa tarefa / comando Java a um determinado JDK / JRE.

Você também pode precisar configurar o JAVA_HOME para algumas aplicações: desta resposta você pode usar

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

para JREs, ou

 export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::") 

para JDKs.