Встановлення JDK 7 за замовчуванням


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'

Пробачте про моє неприйняття, але я інтерпретую ці повідомлення як середовище виконання за допомогою Java 7, але компілятор використовує Java 6?

Чи правильно це, і якщо так, то як я можу встановити його для використання версії Java 7?

Відповіді:


155

Перемикання між встановленими версіями Java може бути здійснено за допомогою update alternativesкоманди.

  • Щоб отримати список встановлених платформ Java, запустіть таку команду з терміналу:

    sudo update-alternatives --config java

    Це дасть вам вихід списку, подібний до цього:

    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: 

У цьому випадку запущена версія Open JDK 6. Щоб перейти на Open JDK версії 7, ви виберете параметр 1під запитом та натисніть Enterклавішу.

Тепер ви будете запускати версію OpenJDK 7. Інші зміни не потрібні для переключення версій Java.


Добре, дякую. Чи би я щось виграв від видалення jkd6?
Wingsuit

@ user142712 Немає проблем. Я вважаю, що видалення також видалить старший плагін браузера, що сприятливо для безпеки.
Кевін Боуен

1
Я б не хотів так швидко відповідати на "Без проблем". Перевірте oracle.com/technetwork/java/javase/compatibility-417013.html та upstream-tracker.org/java/versions/jdk.html . Немає 100% сумісності між цими двома основними версіями, і це може статися так (навряд чи, але все ж ...), що у вас є додаток X, який не може працювати належним чином із сьомою версією. Поки ви не переконаєтесь, що проблем не буде, я настійно раджу зберігати обидва випадки, якщо вам потрібна попередня версія.
rbaleksandar

Просто, щоб було зрозуміло. Коментар "без проблем" був іншим способом, який сказав мені, що ви вітаємось, я ніколи не стверджував, що проблем із встановленням Java не буде.
Кевін Боуен

1
Рішення оновлених альтернатив, що надається цією відповіддю, переключить лише JRE . Дивіться нижче про правильний спосіб переключення всього JDK (компілятора та інших інструментів) однією командою
J. Will

15

Відповідь, яка найбільше голосує, яку пропонує використовувати

оновлення-альтернативи

лише частково відповідає на питання. Використовуючи його, ви дуже ймовірно, що ваше середовище Java буде непослідовно.

Це особливо важливо, якщо у вас є JDK, а не JRE

[sudo] update-alternative --config java

змінить версію для на javaкоманди тільки , тобто Repoint основний JRE виконуваний файл.

javacта інші інструменти JDK як і раніше вказуватимуть на іншу версію Java. Для повного переключення потрібно продовжувати використання update-alternativesвсіх інших інструментів.

Власне , і набагато простіше спосіб перемикання Java версії в дистрибутив Linux з «альтернатив» системи - тобто в Debian або його похідне Ubuntu - це використовувати оновлення в Java-альтернативи команди.

update-java-alternative -l - відобразить список встановлених версій Java

[sudo] update-java-alternative -s - переключиться на потрібну версію

Джерело


ЦЕ! Дуже дякую. Я б хотів, щоб я міг дати вам більше балів в Інтернеті, але я не думаю, що я ще маю це право.
Ненотлеп

10

Ви можете запустити sudo update-alternatives --config javaі вибрати JDK 7, якщо він встановлений.


Гаразд, ура, там сказано, що у мене два JKD7 встановили один статус лістингу, як авто, інший посібник. Чи є різниця?
Wingsuit

Тут є інформація: linux.die.net/man/8/update-alternatives, але я вибрав би автоматичну.
Фредерік Шпанг

"Кожна група посилань перебуває у будь-який момент у одному з двох режимів: автоматичному чи ручному. Коли група перебуває в автоматичному режимі, система альтернатив автоматично визначає, як встановлюються та видаляються пакети, чи буде та як оновити посилання . У ручному режимі система альтернатив не змінить посилання, вона передасть усі рішення системному адміністратору. "
mpen

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.