HOWTO: Установка java на Debian

java install on Debian Linux

Установить java на Debian можно:

  1. "Вручную" (скачав/установив дистрибутив)
  2. "Автоматически" (через apt-get)

Предпочтение лучше отдавать второму способу, т.к. при его использовании java будет обновляться после apt-get update/upgrage. Однако иногда есть требование чётко контролировать версию устанавливаемой "жавы", потому рассмотрим оба варианта.

Установка дистрибутива Java в Debian с java.com

Идём по ссылке http://java.com/ru/download/linux_manual.jsp.

Выбираем нужный вариант джавы, для меня это 64-бит - Linux x64. То есть не RPM - для Debian 7 (Wheezy и любой др.версии), Ubuntu и прочих "debian-based" дистрибутивов (в то время как "rpm" - для Red Hat, CentOS, Suse и тп).

Копируем ссылку и после качаем на управляемой системе. Конкретный список команд для стандартной Debian-based системы (в т.ч. подходит и для Ubuntu):

  • wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800 -O jre-linux.tar.gz
  • tar xvfz jre-linux.tar.gz
  • mkdir /usr/lib/jvm
  • mv jre1.* /usr/lib/jvm/jre
  • update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre/bin/java 1
  • java -version

Кому нужны подробности данного списка - читаем ниже. Иначе - прокручиваем сразу до скачивания/установки java через apt-get.

 

Cначала с помощью wget качаем нужный пакет Java. Для этого используем полученную выше на java.com cсылку.

root@debian7-x64:/home/ubuntuadmin# wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800 -O jre-linux.tar.gz
--2014-07-30 06:17:16--  http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800
Resolving javadl.sun.com (javadl.sun.com)... 137.254.120.23
Connecting to javadl.sun.com (javadl.sun.com)|137.254.120.23|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/7u71-b17/jre-7u71-linux-x64.tar.gz?AuthParam=1406715558_5a93bba4e73391d553c8e21ee27a733c&GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/7u71-b17/jre-7u71-linux-x64.tar.gz&File=jre-7u71-linux-x64.tar.gz&BHost=javadl.sun.com [following]
--2014-07-30 06:17:18--  http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/7u71-b17/jre-7u71-linux-x64.tar.gz?AuthParam=1406715558_5a93bba4e73391d553c8e21ee27a733c&GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/7u71-b17/jre-7u71-linux-x64.tar.gz&File=jre-7u71-linux-x64.tar.gz&BHost=javadl.sun.com
Resolving sdlc-esd.sun.com (sdlc-esd.sun.com)... 204.93.38.129, 204.93.38.146
Connecting to sdlc-esd.sun.com (sdlc-esd.sun.com)|204.93.38.129|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 47005094 (45M) [application/x-gzip]

Saving to: `jre-linux.tar.gz'
100%[==========================================================>] 47,005,094  25.1M/s   in 1.8s
2014-07-30 06:17:20 (25.1 MB/s) - `
jre-linux.tar.gz' saved [47005094/47005094]
root@debian7-x64:/home/ubuntuadmin#

Ключик -O добавлен для упрощения жизни, чтобы скачанный по такой ссылки файл получил "человеческий вид" (jre-linux.tar.gz - иначе он будет что-то типа AutoDL?BundleId=97800) и чтобы проще было использовать данный мануал в жизни: просто скопировал-вставил.

Распаковываем полученный tar.gz-архив:

root@debian7-x64:/home/ubuntuadmin# tar xvfz jre-linux.tar.gz
jre1.7.0_71/
jre1.7.0_71/COPYRIGHT
jre1.7.0_71/THIRDPARTYLICENSEREADME.txt
jre1.7.0_71/lib/
jre1.7.0_71/lib/deploy.jar
...
jre1.7.0_71/plugin/desktop/sun_java.desktop
jre1.7.0_71/THIRDPARTYLICENSEREADME-JAVAFX.txt

root@debian7-x64:/home/ubuntuadmin#

Создаём папку для жавы:

root@debian7-x64:/home/ubuntuadmin# mkdir /usr/lib/jvm
root@debian7-x64:/home/ubuntuadmin#

В принципе можно выбрать любую, /usr/lib/jvm выбрана как "распространённо-стандартная".

Перемещаем туда ранее распакованный архив жава с переименованием:

root@debian7-x64:/home/ubuntuadmin# mv jre1.* /usr/lib/jvm/jre
root@debian7-x64:/home/ubuntuadmin#

Можно было бы использовать "точную" команду mv jre1.7.0_71 /usr/lib/jvm/jre, однако 7.0_65 будет меняться с выходом новых версий, а так быстрей (лишь учесть-поменять, если/когда враги изменят формат имени подкаталога).

Прописываем команду java:

root@debian7-x64:/home/ubuntuadmin# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre/bin/java 1
update-alternatives: using /usr/lib/jvm/jre/bin/java to provide /usr/bin/java (java) in auto mode
root@debian7-x64:/home/ubuntuadmin#

Всё готово, java установлена и теперь будет работать, проверяем сделанное:

root@debian7-x64:/home/ubuntuadmin# java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
root@debian7-x64:/home/ubuntuadmin#

Однако для многих программ часто требуется указание переменной JAVA_HOME, которая указывает путь до установленной выше явы. Для этого нужно выполнить команды:

  • export JAVA_HOME=/usr/lib/jvm/jre
  • PATH=$PATH:$JAVA_HOME/bin
  • export PATH

Однако сделанное будет дейстовать лишь в рамках текущей сессии. А для того, чтобы это было постоянно, нужно их добавить в /etc/profile или в файле .bashrc текущего пользователя (типа /home/ubuntuadmin/.bashrc), где ява будет использоваться. После добавления (в конец вышеупомянутых файлов) - сохранить и перелогиниться. Проверяем:

root@debian7-x64:/home/ubuntuadmin# echo $JAVA_HOME
/usr/lib/jvm/jre
root@debian7-x64:/home/ubuntuadmin# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jre/bin
root@debian7-x64:/home/ubuntuadmin#

Вот теперь точно всё.


Установка Java в Дебиян-линукс с помощью apt-get

Как говорилось ранее, лучше пользоваться данным "автоматическим" способом - с помощью апт-гет. Кроме того, чтобы закрыть максимум вариантов использования java в Linux, поставим JDK-версию пакета, содержащую не только часть "запускающую" джава-код, но и необходимый функционал "для разработчиков". Этот способ состоит из всего одной команды, для текущей Java 7.х это:

apt-get install openjdk-7-jdk

Java в случае Debian 7 Wheezy 64 bit будет установлена в /usr/lib/jvm/java-7-openjdk-amd64, потому в .bashrc

nano /home/ubuntuadmin/.bashrc

добавляем следующее:

  • export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
  • export JDK_HOME=/usr/lib/jvm/java-7-openjdk-amd64
  • export JRE_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
  • PATH=$PATH:$JDK_HOME/bin
  • PATH=$PATH:$JRE_HOME/bin
  • export PATH

Перезагружаемся или перелогиниваемся и теперь у нас Java для любых утилит-сервисов-приложений под Линукс. Контрольная проверка:

  • java -version
  • echo $JAVA_HOME
  • echo $JDK_HOME
  • echo $JRE_HOME

Теперь точно всё. Чтобы сверится приведу главное из выдачи по вышеперечисленным командам установки джывы для дебиян7-64 в моём случае:

root@debian7-x64:/home/ubuntuadmin# apt-get install openjdk-7-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  acl ca-certificates ca-certificates-java colord consolekit cpp cpp-4.7 cryptsetup-bin dbus
...
  reiserfsprogs mdadm mesa-utils
The following NEW packages will be installed:
  acl ca-certificates ca-certificates-java colord consolekit cpp cpp-4.7 cryptsetup-bin dbus
...
  x11proto-core-dev x11proto-input-dev x11proto-kb-dev xorg-sgml-doctools xtrans-dev
0 upgraded, 213 newly installed, 0 to remove and 0 not upgraded.
Need to get 152 MB of archives.
After this operation, 428 MB of additional disk space will be used.

Do you want to continue [Y/n]? y
Get:1 http://http.debian.net/debian/ wheezy/main libsasl2-2 amd64 2.1.25.dfsg1-6+deb7u1 [120 kB]
...
Adding debian:spi-ca-2003.pem
Adding debian:spi-cacert-2008.pem
done.
done.

root@debian7-x64:/home/ubuntuadmin#

п.с. Как раз во время написания статьи по только что описанному "aptget"-способу установки java в Debian была проапгрейжена Java в одной из моих систем:

root@debian7wheezy:/home/admin# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:

  icedtea-7-jre-jamvm libcups2 openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 59.4 MB of archives.
After this operation, 559 kB of additional disk space will be used.
Do you want to continue [Y/n]?

В результате вместо Java7.0.55, что была до апгрейда - теперь Java7.0.65:

root@debian7wheezy:/home/admin# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.1) (7u71-2.5.1-2~deb7u1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
root@debian7wheezy:/home/admin#


Обновление: для удобства поменял ссылки в статье с Java 7.0.66 (7u65) на последние (на октябрь 2014) с Java 7.0.66 (7u71).

Обновление: очередной апгрейд статьи - на версию 7u71. Седьмая версия Java уже перешла в статус "умирающей" - её разработка заканчивается в апреле 2015-го года, потому на сайте Oracle её найти сложней. Запрятали по следующему адресу: http://java.com/ru/download/manual_java7.jsp

Tags: 

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

Добавить комментарий