Ustawienie JDK 7 jako domyślnego

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'

Wybacz mi noobishness, ale interpretuję te komunikaty jako środowisko wykonawcze przy użyciu Java 7, ale kompilator używa Java 6?

Czy to prawda, a jeśli tak, to w jaki sposób mogę ustawić używanie Java w wersji 7?

Skafander
źródło

Odpowiedzi:

155

Przełączanie między zainstalowanymi wersjami Java można wykonać za pomocą update alternativespolecenia.

  • Aby uzyskać listę zainstalowanych platform Java, uruchom następujące polecenie z terminala:

    sudo update-alternatives --config java

    To da ci wynik wyjściowy podobny do tego:

    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: 

W takim przypadku uruchomiona jest wersja Open JDK 6. Aby przełączyć się na Open JDK w wersji 7, wybierz opcję 1w monicie i naciśnij Enterklawisz.

Będziesz teraz korzystać z wersji OpenJDK 7. Żadne inne zmiany nie będą potrzebne do zmiany wersji Java.

Kevin Bowen
źródło
Ok, dzięki. Czy zyskałbym na odinstalowaniu jkd6?
Wingsuit
@ user142712 Nie ma problemu. Uważam, że odinstalowanie spowoduje także usunięcie starszej wtyczki przeglądarki, co jest korzystne ze względów bezpieczeństwa.
Kevin Bowen
1
Nie wybrałbym tak szybko odpowiedzi „Bez problemu”. Sprawdź oracle.com/technetwork/java/javase/compatibility-417013.html i upstream-tracker.org/java/versions/jdk.html . Nie ma 100% kompatybilności między tymi dwiema głównymi wersjami i może się tak zdarzyć (mało prawdopodobne, ale nadal ...), że masz aplikację X, która nie działa poprawnie z siódmą wersją. Dopóki nie upewnisz się, że nie będzie żadnych problemów, zdecydowanie radzę zachować oba na wypadek, gdybyś potrzebował poprzedniej wersji.
rbaleksandar
Gwoli ścisłości. Komentarz „bez problemu” był kolejnym sposobem, w jaki powiedziałem, że jesteś mile widziany, nigdy nie twierdziłem, że nie będzie żadnych problemów z instalacją Java.
Kevin Bowen
1
aktualizacja-alternatywy rozwiązanie dostarczone przez tę odpowiedź zmieni tylko JRE . Zobacz poniżej właściwy sposób przełączania całego JDK (kompilatora i innych narzędzi) za pomocą jednego polecenia
J. Will
15

Najczęściej głosowana odpowiedź, która sugeruje użycie

aktualizacja-alternatywy

tylko częściowo odpowiada na pytanie. Korzystając z niego, bardzo prawdopodobne jest, że środowisko Java będzie niespójne.

Jest to szczególnie ważne, jeśli masz JDK, a nie JRE, as

[sudo] update-alternatives --config java

zmieni wersję dla tej javakomendy tylko , czyli ponownie wskazywał główne JRE wykonywalny.

javaca inne narzędzia JDK nadal będą wskazywały na inną wersję Java. Aby w pełni przełączyć, musisz kontynuować update-alternativesdla wszystkich innych narzędzi.

Właściwa i znacznie łatwiejsza droga do przełączania wersji Java w dystrybucji Linuksa z systemem „alternatyw” - czyli w Debianie lub jej pochodną Ubuntu - jest użycie update-java-alternatives polecenie.

update-java-alternatives -l - wyświetli listę zainstalowanych wersji Java

[sudo] update-java-alternatives -s - przełączy się na żądaną wersję

Źródło

J. Will
źródło
TO! Dziękuję bardzo. Chciałbym móc dać ci więcej punktów w Internecie, ale nie sądzę, że mam jeszcze takie prawo.
Nenotlep
10

Możesz uruchomić sudo update-alternatives --config javai wybrać JDK 7, jeśli jest zainstalowany.

Frederik Spang
źródło
Okej, mówi, że mam dwa JKD7 zainstalowane jeden status aukcji jako auto drugiego podręcznika. Czy jest jakaś różnica?
Wingsuit
Tutaj są informacje: linux.die.net/man/8/update-alternatives, ale wybrałbym auto.
Frederik Spang
„Każda grupa łączy jest w dowolnym momencie w jednym z dwóch trybów: automatycznym lub ręcznym. Gdy grupa znajduje się w trybie automatycznym, system alternatywny automatycznie decyduje, po zainstalowaniu i usunięciu pakietów, czy i jak zaktualizować łącza W trybie ręcznym system alternatyw nie zmieni linków, pozostawiając wszystkie decyzje administratorowi systemu. ”
mpen
5

sposób GUI

$ sudo apt-get install galternatives

$ sudo galternative

więcej tutaj: https://askubuntu.com/a/159594/216936

Alexander Sidikov Pfeif
źródło
1
@KevinBowen Instaluje aplikację GUI.
WouterH
WouterH ma rację. debianadmin.com/... thx wouterH
Alexander Sidikov Pfeif