Установка Oracle Java Development Kit в Linux

Есть несколько способов установить Oracle JDK в Linux. И всякий раз, когда мне приходится выполнить эту процедуру, я забываю каждый из найденых мною когда-то способов. Надоело. Пусть все будет в одном месте.

Способ первый. Решение в лоб.

Решение заключается в скачивании архива с JDK с официального сайта, распаковки содержимого и линковки исполняемых файлов прямо в /usr/bin:
tar -xf jdk-7*.tar.gz
sudo mv jdk1.7* /usr/lib/
sudo ln -s /usr/lib/jdk1.7* /usr/lib/jdk
sudo ln -s /usr/lib/jdk/bin/java /usr/bin/java
sudo ln -s /usr/lib/jdk/bin/javac /usr/bin/javac
Способ настолько груб, что даже не представляю, зачем вообще его описываю.

Использование альтернатив.

Более верным и грамотным подходом является использование альтернатив. Альтернативы - попытка решения проблемы необходимости существования в системе нескольких равнозначных программ. Java нагляднейший пример решаемой проблемы. Суть подхода заключается в создании символьных ссылок в директории /etc/alternatives/ и управление ими через конфигурационный файл /var/lib/alternatives. На самом деле файл лучше руками не трогать. Для конфигурирования существует утилита update-alternative. У нее для нас есть как минимум две полезные способности.

  1. Она умеет показывать список существующих альтернатив:
    update-alternatives --display java
    java - Auto-Modus
    Сейчас ссылка указывает на /usr/lib/jvm/java-6-openjdk/jre/bin/java
    /usr/lib/jvm/java-6-openjdk/jre/bin/java — приоритет 1061
    Slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
    /usr/lib/jvm/java-6-sun/jre/bin/java — приоритет 63
    Slave java.1.gz: /usr/lib/jvm/java-6-sun/jre/man/man1/java.1.gz
    В настоящее время "лучшая" версия /usr/lib/jvm/java-6-openjdk/jre/bin/java
  2. Добавлять в систему новые варианты:
    # update-alternatives--install link name path priority
  3. Здесь:
    link - адресс замещаемой программы
    name - имя замещаемой программы
    path - путь к альтернативному исполняемому файлу
    priority - приоритет добавляемой альтернативы, он влияет на выбор системы в случае удаления текущей "лучшей" программы.
  4. И способна изменять текущий выбор программы поумолчанию:
    # update-alternatives --config java
    Для альтернативы java существует два варианта на выбор
    (они находятся в /usr/bin/java)
    Вариант Путь                                        Приоритет Статус
    ------------------------------------------------------------
    * 0     /usr/lib/jvm/java-6-openjdk/jre/bin/java    1061      Автоматически
      1     /usr/lib/jvm/java-6-openjdk/jre/bin/java    1061      Вручную
      2     /usr/lib/jvm/java-6-sun/jre/bin/java        63        Вручную
    Нажмите Enter, чтобы подтвердить сделанный выбор [*], либо укажите номер варианта:
    Это пожалуй наиболее грамотный вариант решения нашей задачи, но требующий достаточно много манипуляций. Вариант для ленивых я припас на последок.

Использование стороннего репозитория.

Тут все просто. Добавляем ppa, устанавливаем инсталятор, следуем инструкциям и дело в шляпе!
# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
# echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
# apt-get update
# apt-get install oracle-java7-installer
За нас даже о настройке окружения позаботятся:
# apt-get install oracle-java7-set-default

На этом все. Удачи!

2 комментария:

Анонимный комментирует...

как всё сложно в этой вашей убунте) в арчике просто надо набрать yaourt -S jdk для установки ораклового jdk.
а вообще я хотел сказать "привет" и "с возвращением" :) ещё не решил, куда пойдёшь работать?

Vladimir Popov комментирует...

Что, долго было ник прописать, паразит! Хотя знакомых арчеводов у меня и не много, но все же. =) Привет. Пока весь в поисках и раздумьях.