Come impostare la versione Java predefinita


8

Sto usando Java 6 su Ubuntu 11.10, ma ora voglio aggiornare alla versione 7. Ho installato la versione 7 tramite PPA come descritto qui . Se corro

sudo update-alternatives --config java

Ottengo il seguente output:

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

Allo stesso modo, se corro:

sudo update-alternatives --config javac

Ottengo l'output:

  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

Quindi sembra che la versione 7 sia già predefinita. Ma se corro neanche

java -version

o

javac -version

L'output indica che la versione 6 è ancora quella predefinita. Come posso impostare il predefinito sulla versione 7?


Dai un'occhiata a Java
Mitch

@Mitch grazie, ma dice solo di usare update-alternatives, che ho già provato
Dónal

hai fatto sudo apt-get install oracle-java7-set-defaulte riavviato ?
Eliran Malka,

1
Cordiali saluti, 11.10 è la fine della vita.
Thomas Ward

Risposte:


4

Come da questa risposta: come impostare la versione Java predefinita?

Prova a fornire prima il percorso esplicito update-alternatives --installe poi esegui update-alternativesper effettuare la selezione:

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


1

Ho avuto lo stesso problema. Ho installato sun jdk6. Dopo

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

un riavvio era necessario per me. Di quanto ha funzionato.

Modifica: ho capito che non era abbastanza per fare i passaggi precedenti.

Ho anche dovuto modificare la variabile d'ambiente:

    sudo nano /etc/environment

E aggiungi (una versione java diversa richiederà una stringa diversa):

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

0

inserisci il numero che identifica il percorso desiderato e premi invio. in questo caso inserire 1.

infine, prova a provare la versione java -version


Voglio la versione 7, non 6. L'output update-alternativesindica che sto già utilizzando la versione 7, ma java -versionmostra che sto ancora utilizzando la versione 6.
Dónal

0

Immagino che il tuo binario java stia indicando un posto diverso da /etc/alternatives/java.

Controlla l'output di: type java

Dice /usr/bin/java? In tal caso, controlla se questo punta correttamente alle alternative:

ls -l /usr/bin/javadovrebbe mostrarlo indicando /etc/alternatives/java.

Infine confermare che /etc/alternatives/javasi sta puntando a java-7:
ls -l /etc/alternatives/java.

Il comando update-alternatives regola solo l'ultimo e presuppone che i punti predefiniti a /usr/bin/javacui a sua volta siano correttamente collegati /etc/alternatives/java.


0

Ho provato quasi tutti i metodi sopra elencati, ma ho ancora trovato java -version stampare la versione sbagliata mentre ls -al /etc/alternatives/javagià puntavo a quella giusta.

Quindi corro: which java e ho scoperto che il risultato mostra che stavo usando Java da /usr/local/jdk_xxx/bin/java, quindi ho eliminato questa cartella e riavviato il terminale. Ora il java funziona bene.

Spero che possa aiutare gli altri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.