Як замінити OpenJDK 6 на OpenJDK 7?


33

Дивно (оскільки OpenJDK 7 був випущений до загальної доступності близько 4 місяців тому) Ubuntu 11.10 все ще використовує OpenJDK 6 замість 7 за замовчуванням. Як мені найкраще це виправити? Я вважаю за краще повністю видалити OpenJDK 6, а OpenJDK 7 - jdk та jre за замовчуванням.

Я не хочу офіційних тарболів Oracle, я хочу deb repos - стандартний спосіб Ubuntu.


Хтось повинен був би вбудувати це в пакет Debian і помістити його в PPA на Launchpad. Якщо цього ще ніхто не робив, ви можете зробити .deb або встановити тар.
Мартін Удінг

І все-таки справа з 12.04
Thorbjørn Ravn Andersen

Рік 2011 - зараз рік 2012 - чи було це вирішено насправді (який вважався відповіддю lol? Якщо не i gonna write a nice wiki on thisв моєму запитанні / відповіді.

Краще буде оновити вашу систему до LTS.
Ketan Patel

Відповіді:


28

Проблема полягає в тому, що default-jreпакет залежить від OpenJDK 6, а більшість інших пакетів визначають свої залежності як такі default-jre | openjdk-6-jre | sun-java6-jre- доки OpenJDK 7 не стане офіційно підтримуваною і не буде використовуватися як версія за замовчуванням, або поки всі пакети, що залежать від Java, не оновлять свої залежності, ви повинні тримати OpenJDK 6 навколо та встановити OpenJDK 7 за замовчуванням, використовуючи update-java-alternatives. Приклад для 64-бітної системи:

$ update-java-alternatives -l
java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64
$ sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

У 32-розрядної системі назва каталогів буде відрізнятися, ви можете знайти потрібне ім'я за допомогою -lперемикача. Друга команда може виплюнути багато помилок; або використовувати --jreперемикач, або просто ігнорувати помилки - скрипт змінює те, що він може, і просто ігнорує решту.

Теоретично можна відредагувати default-jreпакет залежно від OpenJDK 7, але попередити, що це може принести більше шкоди, ніж користі.


2
Щоб змусити це точно працювати, я повинен був переконатися, що для кожного пакету openjdk-6 або icedtea-6 є відповідний пакет openjdk-7 або icetea-7, інакше оновлення-java-альтернативи не зможе зробити перемикач.
Блер Заяк

2
Після установки icedtea-7-plugin ( $ sudo apt-get install icedtea-7-plugin) він добре працював на Ubuntu 12.04. Спасибі.
Девід

10

Для цього у вас повинні бути встановлені обидві версії jdk у вашій системі. ви можете використовувати apt-get для завантаження обох.

Після цього спробуйте,

$ sudo update-alternatives --config java

і виберіть jdk, який ви хочете використовувати.

Для деяких застосувань Openjdk іноді несприятливий.

Також слід спробувати oracle-java або sun-java.

Посилання нижче дуже корисне для цієї мети:

http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html


3

OpenJDK 7 знаходиться в звичайному репортажі ubuntu в 11.10, якщо ви шукаєте openjdk-7-jre та openjdk-7-jdk та встановлюєте їх за допомогою apt-get / synaptic / software center, вони повинні замінити openjdk-6, якщо він не ви можете видалити пакети openjdk-6- *, використовуючи спочатку apt-get purge openjdk-6-*


1
Пакети openjdk-7- *, здається, мають бути встановлені поруч із openjdk-6- . І якщо я спробую видалити openjdk-6- , є багато пакетів, які потрібно видалити як залежні (незважаючи на те, що я знаю, що деякі з цих додатків прекрасно працюють з Java 7).
Іван

очевидно, default-jreвсе ще вказує на Java 6.
Thorbjørn Ravn Andersen

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