Impostazione di JDK 7 come impostazione predefinita


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'

Perdona il mio noobishness ma sto interpretando questi messaggi come ambiente di runtime usando Java 7 ma il compilatore sta usando Java 6?

È giusto e, in tal caso, come posso impostarlo per utilizzare Java versione 7?

Risposte:


155

La commutazione tra le versioni Java installate può essere effettuata utilizzando il update alternativescomando.

  • Per ottenere un elenco delle piattaforme Java installate, eseguire il comando seguente dal terminale:

    sudo update-alternatives --config java

    Questo ti darà un elenco di output simile a questo:

    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: 

In questo caso, è in esecuzione la versione Open JDK 6. Per passare a Open JDK versione 7, selezionare l'opzione 1al prompt e premere il Entertasto.

Ora eseguirai la versione OpenJDK 7. Non saranno necessarie altre modifiche per cambiare la versione di Java.


Va bene, grazie. Otterrei qualcosa dalla disinstallazione di jkd6?
Wingsuit,

@ user142712 Nessun problema. Credo che una disinstallazione rimuova anche il vecchio plug-in del browser, il che è vantaggioso per la sicurezza.
Kevin Bowen,

1
Non sceglierei la risposta "Nessun problema" così in fretta. Controlla oracle.com/technetwork/java/javase/compatibility-417013.html e upstream-tracker.org/java/versions/jdk.html . Non esiste una compatibilità al 100% tra quelle due versioni principali e potrebbe succedere in modo (improbabile ma comunque ...) che si abbia un'applicazione X che non può funzionare correttamente con la settima versione. Fino a quando non ti assicurerai che non ci saranno problemi, ti consiglio vivamente di conservarli entrambi nel caso in cui tu abbia bisogno della versione precedente.
rbaleksandar,

Giusto per essere chiari. Il commento "nessun problema" è stato un altro modo in cui ho detto che sei il benvenuto, non ho mai sostenuto che non ci sarebbero stati problemi con la tua installazione di Java.
Kevin Bowen,

1
La soluzione di aggiornamento-alternativa fornita da questa risposta cambierà solo JRE . Vedi sotto per il modo corretto di cambiare l'intero JDK (compilatore e altri strumenti) con un comando
J. Will

15

La risposta più votata che suggerisce di usare

update-alternatives

risponde solo parzialmente alla domanda. Usandolo è molto probabile che il tuo ambiente Java diventi incoerente.

Questo è particolarmente importante se hai JDK, non JRE, come

[sudo] update-alternatives --config java

cambierà versione per il il javacomando unico , vale a dire repoint principale eseguibile JRE.

javace altri strumenti JDK punteranno comunque all'altra versione java. Per passare completamente devi continuare con update-alternativestutti gli altri strumenti.

Il modo corretto e molto più semplice di cambiare versione Java nella distribuzione Linux con il sistema "alternatives" - cioè in Debian o nella sua derivata Ubuntu - è usare il comando update-java-alternatives .

update-java-alternatives -l - elencherà le versioni Java installate

[sudo] update-java-alternatives -s - passerà alla versione richiesta

fonte


QUESTO! Grazie mille. Vorrei poterti dare più punti su Internet, ma non credo di averlo ancora fatto.
Nenotlep

10

È possibile eseguire sudo update-alternatives --config javae selezionare JDK 7, se installato.


Va bene salute, dice che ho due dei JKD7 installati uno stato di elenco come auto l'altro manuale. C'è qualche differenza?
Wingsuit,

Ci sono informazioni qui: linux.die.net/man/8/update-alternatives ma selezionerei auto.
Frederik Spang,

"Ogni gruppo di collegamenti è, in un dato momento, in una delle due modalità: automatica o manuale. Quando un gruppo è in modalità automatica, il sistema alternativo deciderà automaticamente, man mano che i pacchetti vengono installati e rimossi, se e come aggiornare i collegamenti In modalità manuale, il sistema alternativo non cambierà i collegamenti, ma lascerà tutte le decisioni all'amministratore del sistema. "
mpen

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.