Configurando o JDK 7 como padrão

83
 four@twenty:~$ file /etc/alternatives/java /etc/alternatives/javac
 /etc/alternatives/java:symbolic link to `/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
 /etc/alternatives/javac:symbolic link to `/usr/lib/jvm/java-6-openjdk-amd64/bin/javac'

Perdoe meu noobishness, mas estou interpretando essas mensagens como o ambiente de tempo de execução usando Java 7, mas o compilador está usando Java 6?

Está correto e, em caso afirmativo, como posso configurá-lo para usar o Java versão 7?

Wingsuit
fonte

Respostas:

155

A alternância entre as versões Java instaladas pode ser realizada usando o update alternativescomando

  • Para obter uma lista de suas plataformas Java instaladas, execute o seguinte comando no terminal:

    sudo update-alternatives --config java

    Isso fornecerá uma saída de lista semelhante a esta:

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

Nesse caso, a versão do Open JDK 6 está em execução. Para alternar para o Open JDK versão 7, você selecionaria a opção 1no prompt e pressionaria a Entertecla

Agora você estará executando a versão do OpenJDK 7. Nenhuma outra alteração será necessária para mudar suas versões Java.

Kevin Bowen
fonte
Ok obrigado. Eu ganharia alguma coisa com a desinstalação do jkd6?
Wingsuit 26/03
@ user142712 Sem problemas. Acredito que uma desinstalação também remova o plug-in do navegador mais antigo, o que é benéfico em termos de segurança.
Kevin Bowen
11
Eu não aceitaria a resposta "Sem problemas" tão rápido. Verifique oracle.com/technetwork/java/javase/compatibility-417013.html e upstream-tracker.org/java/versions/jdk.html . Não há 100% de compatibilidade entre essas duas versões principais e pode acontecer (improvável, mas ainda assim ...) que você tenha um aplicativo X que não possa ser executado corretamente com a sétima versão. Até você ter certeza de que não haverá problemas, aconselho vivamente a manter os dois, caso você precise da versão anterior.
Rbaleksandar
Só para ficar claro. O comentário "sem problemas" foi outra maneira de dizer que é bem-vindo, nunca afirmei que não haveria problemas com a instalação do Java.
Kevin Bowen
11
A solução de atualização de alternativas fornecida por esta resposta mudará apenas o JRE . Veja abaixo a maneira correta de alternar todo o JDK (compilador e outras ferramentas) com um comando
J. Will
15

A resposta mais votada que sugere usar

alternativas de atualização

responde apenas parcialmente à pergunta. Ao usá-lo, é muito provável que seu ambiente Java seja inconsistente.

Isso é especialmente importante se você tiver JDK, não JRE, pois

[sudo] alternativas de atualização --config java

vai mudar de versão para o do javacomando única , ou seja, repoint executável principal JRE.

javace outras ferramentas JDK ainda apontarão para a outra versão java. Para mudar completamente, você deve continuar com update-alternativestodas as outras ferramentas.

A maneira correta e muito mais fácil de alternar as versões Java na distribuição Linux com o sistema "alternativo" - ou seja, no Debian ou no Ubuntu derivado - é usar o comando update-java-alternative .

update-java-alternative -l - listará as versões Java instaladas

[sudo] update-java-alternative -s - mudará para a versão solicitada

Fonte

J. Will
fonte
ESTA! Muito obrigado. Eu gostaria de poder lhe dar mais pontos na internet, mas acho que ainda não tenho esse direito.
Nenotlep 7/03/2017
10

Você pode executar sudo update-alternatives --config javae selecionar JDK 7, se estiver instalado.

Frederik Spang
fonte
Aplausos, diz que tenho dois dos JKD7 instalados, um status de listagem como automático e outro manual. Existe alguma diferença?
26713 Wingsuit
Há informações aqui: linux.die.net/man/8/update-alternatives, mas eu selecionaria auto.
precisa
"Cada grupo de links está, a qualquer momento, em um dos dois modos: automático ou manual. Quando um grupo está no modo automático, o sistema alternativo decide automaticamente, à medida que os pacotes são instalados e removidos, se e como atualizar os links. No modo manual, o sistema alternativo não altera os links; deixa todas as decisões para o administrador do sistema. "
mpen
5

a maneira GUI

$ sudo apt-get install galternatives

$ sudo galternatives

mais aqui: https://askubuntu.com/a/159594/216936

Alexander Sidikov Pfeif
fonte
11
@KevinBowen Isso instala um aplicativo GUI.
WouterH
WouterH está certo. debianadmin.com/… thx wouterH #
Alexander Sidikov Pfeif