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.