Como definir a versão Java padrão


8

Estou usando o Java 6 no Ubuntu 11.10, mas agora quero atualizar para a versão 7. Instalei a versão 7 via PPA, conforme descrito aqui . Se eu correr

sudo update-alternatives --config java

Eu recebo a seguinte saída:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        auto mode
  1            /usr/lib/jvm/java-6-sun/jre/bin/java      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        manual mode

Da mesma forma, se eu executar:

sudo update-alternatives --config javac

Eu recebo a saída:

  Selection    Path                                  Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/bin/javac   64        auto mode
  1            /usr/lib/jvm/java-6-sun/bin/javac      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/bin/javac   64        manual mode

Parece que a versão 7 já é o padrão. Mas se eu correr

java -version

ou

javac -version

A saída indica que a versão 6 ainda é o padrão. Como posso definir o padrão para a versão 7?


Dê uma olhada no Java
Mitch

@ Mitch obrigado, mas ele apenas diz ao uso update-alternatives, que eu já tentei
Donal

você sudo apt-get install oracle-java7-set-defaulte reiniciar ?
Eliran Malka

1
Para sua informação, 11.10 é Fim da vida.
Thomas Ward

Respostas:


4

De acordo com esta resposta: Como definir a versão Java padrão?

Tente fornecer o caminho explícito junto com o update-alternatives --installprimeiro e execute update-alternativespara fazer sua seleção:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1

sudo update-alternatives --config java

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1

sudo update-alternatives --config javac

3

Você precisa definir javactambém.

sudo update-alternatives --config javac

1

Eu tive o mesmo problema. Eu tinha o Sun JDK6 instalado. Depois de

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws

uma reinicialização foi necessária para mim. Do que funcionou.

Edit: eu percebi que não era suficiente para executar as etapas acima.

Eu também tive que editar a variável de ambiente:

    sudo nano /etc/environment

E adicione (uma versão java diferente exigirá uma sequência diferente):

    JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

0

insira o número que identifica o caminho desejado e pressione enter. neste caso, insira 1.

finalmente, tente testar a versão java -version


Quero versão 7, não 6. A saída update-alternativesindicando que eu já estou usando a versão 7, mas java -versionmostra que eu ainda estou usando a versão 6.
Donal

0

Eu acho que seu binário java está apontando para outro lugar que não /etc/alternatives/java.

Verifique a saída de: type java

Diz isso /usr/bin/java? Nesse caso, verifique se isso aponta corretamente para alternativas:

ls -l /usr/bin/javadeve mostrar apontando para /etc/alternatives/java.

Por fim confirmar que /etc/alternatives/javaem si está apontando para java-7:
ls -l /etc/alternatives/java.

O comando update-alternative apenas ajusta o último e assume que os pontos padrão aos /usr/bin/javaquais, por sua vez, estão corretamente vinculados /etc/alternatives/java.


0

Eu tentei quase todos os métodos listados acima, mas ainda encontrei java -version a versão errada enquanto ls -al /etc/alternatives/javajá apontava para a correta.

Então eu corro: which java e descobri que o resultado mostra que eu estava usando java de /usr/local/jdk_xxx/bin/java, então apaguei esta pasta e reiniciei o terminal. Agora o java funciona bem.

Espero que ajude os outros.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.