Это старая версия документа.


Логотип Java Java — это язык программирования и вычислительная платформа, впервые выпущенная компанией Sun Microsystems в 1995 году. Это базовая технология, на которой основываются многие современные программы (в том числе утилиты, игры и бизнес-приложения). Java работает на более чем 850 млн персональных компьютерах и в миллиардах устройств (в том числе в мобильных телефонах и в телевизорах) по всему миру.

Зачем нужен Java?

Есть множество приложений и веб-сайтов, которые будут работать, только если у вас установлена Java, и их число постоянно растет. Java обеспечивает быстродействие, безопасность и надежность. Java используется везде: от портативных компьютеров до центров обработки данных, от игровых приставок до научных суперкомпьютеров, от мобильных телефонов до Интернета!

Версии Java

На данный момент существует множество реализаций Java платформы, из которых популярны две – открытая версия OpenJDK и Oracle Java. Основные отличия между этими версиями заключается в том, что в Oracle Java содержатся некоторые закрытые компоненты, а так же компоненты, защищенные патентами. OpenJDK является реализацией спецификаций Java с полностью открытым исходным кодом. Начиная с 7 версии OpenJDK является эталонной реализацией Java SE. Для большинства пользователей нет особой разницы какой именно версией Java пользоваться, но в некоторых случаях закрытая реализация от Oracle проявляет себя с лучшей стороны.

Установка Java

OpenJDK

OpenJDK

Установить OpenJDK можно перейдя по ссылке слева или введя в терминале следующую команду:

sudo apt-get install openjdk-7-jdk

Установка Oracle Java сторонним скриптом от проекта webupd8.org (JRE и JDK)

В связи с тем, что Oracle изменила условия распространения своей реализации Java, в репозитории Ubuntu не содержатся компоненты Oracle Java. Существует PPA организованный сайтом webupd8.org содержащий в себе программу, которая будет автоматически проверять версию Java на сайте Oracle и сравнивать её с версией установленной на вашем компьютере. Это позволяет обойти ограничения наложенные на распространение Oracle Java.

Чтобы добавить данный репозиторий и использовать последнюю версию Java с сайта Oracle, выполните в терминале следующие действия:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Кроме того, данный репозиторий изменяет зависимости пакетов, использующих Java, так, что становится возможным безболезненное удаление OpenJDK из системы.

Проверьте установленную версию:

java -version
javac -version

Инсталятор требует подтвердить принятие лицензии, если вы хотите принять лицензию автоматически, то выполните команду:

echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections

Переключение между версиями Java. Вы можете установить Java 7 или другую версию командой:

sudo apt-get install oracle-java7-installer

После этого можно переключаться между версиями Java с помощью команд. Переключение на версию Java 7:

sudo update-java-alternatives -s java-7-oracle

Переключение на версию Java 8:

sudo update-java-alternatives -s java-8-oracle

Для автоматической установки переменных среды вы можете выполнить команду:

sudo apt-get install oracle-java8-set-default
Установка переменных среды может вызвать ошибки, если указать пути к разным версиям одной библиотеки (то есть будут совпадать имена классов) или путь к установленной в системе Java будет отличаться от указанного в переменных среды.

Поэтому, как вариант, если у вас нет программ использующих их, то не устанавливайте их.

Если вы используете эту команду и захотите переустановить jdk, то после переустановки необходимо выполнить её еще раз, чтобы обновить переменные (переустановить данный пакет).

Если вы переключаетесь между разными версиями Java, то также необходимо переустановить этот пакет. Для OpenJDK нету похожих пакетов поэтому для него придется указывать переменные среды вручную

sudo nano /etc/environment

Либо командой (добавленное командой export действует только до перезагрузки)

Переменная PATH должна зависить от JAVA_HOME и JRE_HOME

export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"

Тогда для быстрого переключения на другие пепременные среды при смене версий Java нужно менять только эти переменные среды:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
export JDK_HOME=/usr/lib/jvm/java-7-openjdk
export JRE_HOME=/usr/lib/jvm/java-7-openjdk/jre

Скорее всего данный скрипт именно так устанавливает переменную PATH так что вам не нужно будет её менять и нужно выполнить только последние три комманды.

Установка различных версий Java через графическое меню может быть сделана сторонним скриптом от Bruce Ingalls.

Установка скрипта из репозитория:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install update-java

Либо установите вручную:

sudo apt-get install zenity
wget http://webupd8.googlecode.com/files/update-java
chmod +x update-java
sudo ./update-java

После этого запустите скрипт:

sudo update-java

Для удаления Oracle Java 8 выполните команду:

sudo apt-get remove oracle-java8-installer

Установка Java вручную (на примере Oracle JDK 8)

Это краткая инструкция по минимальной установке Java SE JDK в систему. Здесь не рассмотрены вопросы с установкой всех альтернатив с привязкой man страниц, создание информационного файла для команды update-java-alternatives, создание значков и ярлыков запуска для окружения рабочего стола и настройкой binfmt для запуска jar файлов, как любой другой программный файл в системе. Все эти действия делает установщик от команды WebUpd8, рассмотренный ранее.
  • Загрузите архив Java JDK 8 с сайта компании Oracle.
  • Распакуйте скачанный архив. Как правило, в debian/ubuntu для различных версий Java принято использовать каталог /usr/lib/jvm:
sudo mkdir -p /usr/lib/jvm
sudo tar -xf jdk-8-linux-i586.tar.gz -C /usr/lib/jvm
  • При помощи команды update-alternatives установите новую версию Java:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.8.0/bin/javaws 1
С update-alternatives возможно иметь несколько версий Java в системе. Нет необходимости удалять OpenJDK или другие версии Java.
  • Сконфигурируйте альтернативы на новую версию Java
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
Чтобы установить нужную версию Java после добавления командой
update-alternatives --install

исполняемого файла можно выполнить команду

sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0/bin/java

Где java можно заменить на javac, jar, javah и т. д.

  • Проверяем результат проделанной работы:
java -version
javac -version
Если необходимо добавить иные исполняемые файлы, например javah, jar или другие для использования в виде команд терминала или использования программами, то делать по аналогии выше по тексту, использую команду update-alternatives и подставляя названия нужных исполняемых файлов.

Команда

javaws -viewer

вызывает графическое меню Java Web Start.

  • Чтобы установить плагин для браузера Mozilla Firefox из Oracle Java:
sudo update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/jdk1.8.0/jre/lib/i386/libnpjp2.so 1
sudo update-alternatives --config mozilla-javaplugin.so
Обратите внимание на каталог i386 в пути к плагину. У сборки Java для другой архитектуры данный каталог может быть иным. Для архитектуры x86-64 (AMD64/Intel64/EM64T) каталог называется amd64.
  • Установка переменных среды. Отредактируйте файл /etc/environment
Установка переменных среды может вызвать ошибки, если указать пути к разным версиям одной библиотеки (то есть будут совпадать имена классов) или путь к установленной в системе Java будет отличаться от указанного в переменных среды.

Поэтому, как вариант, если у вас нет программ использующих их, то не устанавливайте их.

sudo nano /etc/environment

В переменную среды PATH добавьте пути к исполняемым файлам /usr/lib/jvm/jdk1.8.0/bin и /usr/lib/jvm/jdk1.8.0/jre/bin

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0/bin:/usr/lib/jvm/jdk1.8.0/jre/bin"

Создайте переменные среды:

JAVA_HOME="/usr/lib/jvm/jdk1.8.0"
JDK_HOME="/usr/lib/jvm/jdk1.8.0"
JRE_HOME="/usr/lib/jvm/jdk1.8.0/jre"

После редактирования файла /etc/environment перезагрузите систему.

Для быстрого переключения между версиями Java при использовании переменных среды можно использовать команды:

Переменная PATH должна зависить от JAVA_HOME и JRE_HOME

export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"

Тогда для быстрого переключения на другие пепременные среды при смене версий Java нужно менять только эти переменные среды:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk
export JDK_HOME=/usr/lib/jvm/java-7-openjdk
export JRE_HOME=/usr/lib/jvm/java-7-openjdk/jre
Если необходимо подключить каталог с дополнительными файлами типа jar или class нужно создать переменную среды CLASSPATH, где перечислить необходимые каталоги. Либо указать путь к jar файлу в случае отдельного jar файла.
CLASSPATH="/home/user/apache-tomcat-7.0.52/lib:/home/user/mysql-connector-java.jar"

Ссылки

См. также