Удивительно (поскольку OpenJDK 7 был выпущен в общедоступную версию около 4 месяцев назад), Ubuntu 11.10 по-прежнему использует OpenJDK 6 вместо 7 по умолчанию. Как это лучше всего исправить? Я бы предпочел полностью удалить OpenJDK 6 и оставить OpenJDK 7 в качестве default-jdk и default-jre.
Мне не нужны официальные tar-архивы Oracle, мне нужны deb-репозитории — стандартный способ Ubuntu.
решение1
Проблема в том, что 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-битной системе имя каталога будет отличаться, вы можете найти правильное имя с помощью switch -l
. Вторая команда может выдать много ошибок; либо используйте --jre
switch, либо просто игнорируйте ошибки — скрипт изменяет то, что может, и просто игнорирует остальное.
Теоретически можно отредактировать default-jre
пакет так, чтобы он зависел от OpenJDK 7, но имейте в виду, что это может принести больше вреда, чем пользы.
решение2
Для этого в вашей системе должны быть установлены обе версии 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-*
решение4
Репозиторий можно найти здесь: https://launchpad.net/~openjdk/+archive/ppa
или:
sudo apt-add-repository ppa:openjdk/ppa
sudo apt-get update
sudo apt-get upgrade
при условии, что у вас установлен OpenJDK