Несмотря на то, что разработчики Debian оставили в дистрибутиве Wheezy только OpenJDK и начисто вырезали Sun Java, которая не отвечает положениям свободного ПО, был оставлен "костыль" для тех кому традиционная java все же необходима в работе. В частности, например NetBeans IDE 7.4 не хочет "кушать" OpenJDK, а требует сановскую яву. Ну что же, приступим к делу.
Для начала проверим и убедимся что в системе установлена Java. Для этого в командной строке выполним (вывод команды здесь и далее выделен курсивом)
am@ampc:~$ java -version
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1-deb7u1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Как и ожидалось, установлена OpenJDK 6. Можно посмотреть на альтернативные JVM, если таковые имеются в системе. Выполняем для этого команду
am@ampc:~$ update-alternatives --list java
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
и видим, что OpenJDK в "гордом одиночестве" размещается в каталоге /usr/lib/jvm.
Теперь про дебиановский "костыль"... Называется он java-package. Этот пакет предлагает средства для построения пакетов формата deb из дистрибутивных бинарных файлов java. Установим его (содержится в contrib источнике, а не в main - имейте в виду)
am@ampc:~$ sudo apt-get install java-package
Теперь самое время сходить на сайт www.oracle.com за файлом дистрибутива Java 7 SE. Так как у меня платформа 32bit, я качаю тарбол tar.gz для Linux x86. Кладу его в какой-нибудь каталог и перехожу к процессу генерации deb пакета. Здесь важно отметить, что процесс генерации использует для своих нужд каталог, определенный в переменной окружения $TMPDIR, и если эта переменная не определена (по умолчанию это так), то используется стандартный /tmp. Однако не всегда там есть достаточно места. На операцию требуется около 200 МБ и в моем случае пришлось указать другой каталог для временных файлов
am@ampc:~$ export TMPDIR=/home/am/.tmp
am@ampc:~$ echo $TMPDIR
/home/am/.tmp
Второй командой я проверил, что переменная приняла необходимое значение. Находясь в каталоге с тарболом запускаем процедуру генерации deb пакета командой
am@ampc:~$ make-jpkg jdk-7u45-linux-i586.tar.gz
Я не привожу вывод из-за его объемности. Достаточно сказать, что во временном каталоге происходит "волшебство" сборки пакета и на финальной стадии сформированный пакет копируется в каталог с тарболом. Временный каталог очищается. Сборка пакета не прошла гладко. Были сообщения о проблемах с избыточными зависимостями, невозможностью экспорта некоторых имен и другие, но пакет собрался. Осталось сгенерированный deb пакет установить стандартными средствами Debian
am@ampc:~$ sudo dpkg -i oracle-java7-jdk_7u45_i386.deb
Теперь, если выполнить update-alternatives --list java мы увидим в конце вывода строку соответствующую установленной нами java от Oracle. Осталось назначить ее используемой по умолчанию. Для этого выполняем команду
am@ampc:~$ sudo update-alternatives --config java
которая будет ожидать от пользователя выбора номера позиции из распечатанного на экране списка доступных версий java (крайняя левая колонка).
Проверим, что в итоге получилось
am@ampc:~$ java -versionP.S. Полезные ссылки по теме: Java and Debian, JavaPackage.
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Server VM (build 24.45-b08, mixed mode)