Никогда бы не подумал, что придется писать подобные мануалы, тем более для себя… Но, пути копирастов неисповедимы.
Собственно. Если кто не в курсе, то в какой-то момент компаниякоторуюнельзяназывать изменила лицензионное соглашение для JDK так, что её стало невозможно распространять через линуксячьи репозитории.
OpenJDK, который остался в репозиториях — полный шлак и не умеет даже запускать KVM-ные апплеты. Очень многие.
Тем временем jdk делает огромные шаги, вышла уже 7я версия (шустрее, выше, сильнее, а главное, что нет проблем с доступом к ipmi/ip-kvm вообще никаких).
Вот только процесс установки теперь для убунтоводов несколько нетривиален.
Ну а поскольку сам я сижу под бубунтой — мне он тоже пригодится.
Самое паршивое, что теперь она не будет обновляться при apt-get update. Ну то, что оракловцы мудаки — мы уже давно знаем. Ставить её всё равно нужно. Они настолько мудаки, что теперь нельзя найти даже статическую ссылку на последнюю версию (которую можно было бы вставить в статью).
Посему топаем сюда Тут валяется версия 7u4.
По-хорошему нужно пойти сюда, и ткнуть «download» под нужной версией. Короче, ужас.
Скачать нам оттуда нужно файл jdk-7u4-linux-x64.tar.gz или jdk-7u4-linux-i586.tar.gz (ну или новее, соответственно, если найдете). Ну и не забыть найти и выбрать пункт «Accept License Agreement» в уродской бестолковой верстке сайта. Эти полудурки ещё и добавили GET параметр к ссылке в виде… эээ… куска от куки, без которого скачать этот файл не получится (короче, вам обязательно понадобится браузер и хрена с 2 вы скачаете её из консольки сервера).
Когда мы получим файл — можно наконец-то распрощаться с оракловым говносайтом и спокойно идти в консольку.
У меня получился файл jdk-7u4-linux-x64.tar.gz
Положим это отродие в правильное с его точки зрения место:
Создадим переменную, чтобы мануал остался универсальным для любых версий (потом всё следует делать в том же терминале):
# здесь после равно нужно указать название каталога, которому мы делали mv
Теперь создадим правильные симлинки внутри системы:
Теперь самое время убедить нашу убунту в том, что следует использовать именно 7ю jdk, которую мы только что «установили». Если других версий jdk вы не ставили — то вам просто для успокоения совести следует ввести следующие 3 команды. Если ставили — то нам зададут всякие глупые вопросы. На них придется ответить:
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 manual mode
2 /usr/lib/jvm/jdk1.7.0_04/bin/javac 1 manual mode
Press enter to keep the current choice[*], or type selection number: 2
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode
2 /usr/lib/jvm/jdk1.7.0_04/bin/java 1 manual mode
Press enter to keep the current choice[*], or type selection number: 2
There is only one alternative in link group javaws: /usr/lib/jvm/jdk1.7.0_04/bin/javaws
Nothing to configure.
...
Как выбрать циферку, думаю, всем понятно =)
Теперь проверим, что мы всё настроили верно:
lrwxrwxrwx 1 root root 33 May 23 01:40 /etc/alternatives/java -> /usr/lib/jvm/jdk1.7.0_04/bin/java
lrwxrwxrwx 1 root root 34 May 23 01:39 /etc/alternatives/javac -> /usr/lib/jvm/jdk1.7.0_04/bin/javac
lrwxrwxrwx 1 root root 35 May 23 00:29 /etc/alternatives/javaws -> /usr/lib/jvm/jdk1.7.0_04/bin/javaws
...
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
Ну и осталась мелочь — рассказать нашим браузерам, что у нас есть java-плагин к ним (это актуально почти для всех браузеров, для FF и Chrome/Iron/Chromium — точно):
Проверить, что оно заработало можно здесь.
Я бы ещё по вкусу назначил на файлы *.jnlp ассоциацию с javawc, но это уже отдельная история (собственно, jnlp только через javawc и откроется).
А можно просто воспользоваться репозиторием http://www.duinsoft.nl/packages.php
:)
Не стоит такого делать. Мы же не пираты =)
Да и старьё там частенько.
Ничего пиратского там нет.
Это перозиторий скрипта, который делает примерно тоже самое, что описано в этой статье, только автоматически. Полезно, если нужно быстро поставить java и JRE аплет для браузеров.
И лицензионное соглашение заставляет почитать? )
А есть ещё make-jpkg из пакета java-package:
make-jpkg jdk-7u2-linux-x64.tar.gz
dpkg -i oracle-j2sdk1.7_1.7.0+update2_amd64.deb
Извиняюсь за оффтоп, но хотелось-бы спросить, курсов давно не было, или смотреть надо где-то в другом месте?
Мы к инсталл-фесту готовились сначала, а потом анонс сделать забыли на следующую субботу после феста (послезавтра то есть).
то есть ничего не будет в эту субботу?
Нет.
Спасибо вам огромное! Я очень долго мучился и наконец-то получилось именно благодаря вам.
Не за что)
У тебя есть ошибка, ты jdir присваиваешь значение под рутом, а потом используешь его под обычным пользователем, разве это работает? у меня не заработало. а за мануал спасибо, полезно, закинул в копилку.
Хм. Не вижу такого нигде, вроде только от рута $jdir вставляю.
спасибо огромное, ведь время драгоценно :)
Sergey, не за что.
gridis, спасибо, нашел ошибку, поправил.
Спасибо. В Firefox все заработало, а в Chromium нет.
В нем тоже должно заработать.
ls -la ~/.mozilla/plugins/
Покажите
alex@alex-VPCS13S8R:~$ ls -la ~/.mozilla/plugins/
итого 8
drwxrwxr-x 2 alex alex 4096 авг. 7 23:11 .
drwx—— 5 alex alex 4096 авг. 7 23:09 ..
lrwxrwxrwx 1 alex alex 39 авг. 7 23:11 libnpjp2.so -> /usr/lib/jvm//jre/lib/amd64/libnpjp2.so
Странно, должно всё работать. Скорее всего, плагины в браузере отключены или что-то около того.
помогите пожалуйста, на создание правильных симлинков отвечает:update-alternatives: ошибка: альтернативный путь /usr/lib/jvm/bin/javac не существует.
update-alternatives —install не сделали.
согласен с inkvizitor68sl
добавил deb http://www.duinsoft.nl/pkg debs all
в /etc/apt/sources.list
скачивается последняя версия java
update-sun-jre/jre-7u6-linux-i586.tar.gz
у меня вот такое на последние действия происходит
su username -c «mkdir ~username/.mozilla/plugins»; rm ~username/.mozilla/plugins/libnpjp2.so; su username -c «ln -s /usr/lib/jvm/$jdir/jre/lib/amd64/libnpjp2.so ~username/.mozilla/plugins/»
Неизвестный id: username
rm: невозможно удалить «~username/.mozilla/plugins/libnpjp2.so»: Нет такого файла или каталога
Неизвестный id: username
username на своё имя пользователя замените во всех командах…
а сейчас вот такое
mkdir: невозможно создать каталог «/home/bender/.mozilla/plugins»: Файл существует
Ну существует и существует.
ls -la туда скажите.
drwxr-xr-x 2 root root 4096 сент. 4 15:33 .
drwxr-xr-x 3 root root 4096 авг. 18 02:07 ..
lrwxrwxrwx 1 root root 37 сент. 3 18:45 flashplugin-alternative.so -> /etc/alternatives/mozilla-flashplugin
lrwxrwxrwx 1 root root 49 сент. 4 15:33 libnpjp2.so -> /usr/lib/jvm/jdk1.7.0_04/jre/lib/i386/libnpjp2.so
-rw-r—r— 1 root root 5412 июля 9 23:59 librhythmbox-itms-detection-plugin.so
-rw-r—r— 1 root root 95760 апр. 3 00:56 libtotem-cone-plugin.so
-rw-r—r— 1 root root 100232 апр. 3 00:56 libtotem-gmp-plugin.so
-rw-r—r— 1 root root 71204 апр. 3 00:56 libtotem-mully-plugin.so
-rw-r—r— 1 root root 79564 апр. 3 00:56 libtotem-narrowspace-plugin.so
lrwxrwxrwx 1 root root 49 сент. 4 15:33 libnpjp2.so -> /usr/lib/jvm/jdk1.7.0_04/jre/lib/i386/libnpjp2.so
Значит, всё правильно.
Подскажите что не так? ->>>
0. //ubuntu amd64: install g++-multilib
1. # cp jdk-6u35-linux-i586.bin /opt/java/
2. # cd /opt/java/
3. # ./jdk-6u35-linux-i586.bin
4. # update-alternatives —install /usr/bin/java java /opt/java/jdk1.6.0_35/bin/java 100
5. # update-alternatives —install /usr/bin/javaws javaws /opt/java/jdk1.6.0_35/bin/javaws 100
6. # update-alternatives —install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /opt/java/jdk1.6.0_35/jre/lib/i386/libnpjp2.so 100
7. # update-alternatives —config java
8. $ JAVA_HOME=/opt/java/jdk1.6.0_35/
9. $ export JAVA_HOME
10. $ PATH=$PATH:/opt/java/jdk1.6.0_35/bin
11. $ export PATH
После этого javac не находим, и браузер (мозилла) тоже не находит джаву.
Вы откуда это и зачем взяли ?
доброго времени суток у меня при выполнении данной операции mv jdk1.7.0_04/ /usr/lib/jvm/
говорит что отказанно в доступе как мне это исправить ?
Внимательно смотрите, от какого пользователя выполняется команда.
root@host:~# su username -c «mkdir ~username/.mozilla/plugins»; rm ~username/.mozilla/plugins/libnpjp2.so; su username -c «ln -s /usr/lib/jvm/$jdir/jre/lib/amd64/libnpjp2.so ~username/.mozilla/plugins/»
это для Хромиума подходит? плагин все равно не встает
Хм… все-то то надо было подумать и поставить вместо amd64, i386.
sudo ln -s /usr/lib/jvm/jdk1.7.0_09/jre/lib/i386/libnpjp2.so /home/user/.mozilla/plugins/
а если там есть старая ссылка удалить её нах
Материал статьи отличный, но много личного негатива, от чего и статья оставляет негативное впечатление. Лучше постараться обойтись без этого. Правда.
В остальном — отличная работа!
Спасибо и всего наилучшего! :)
А мне наоборот понравился негатив в статье. Не в том смысле что так и нужно всегда писать. Просто так статья выглядит живой и читать ее интересно. Дочитал до конца с интересом и воспользовался советом из первого комментария. Для меня так было проще.
А ещё лучше этим репозиторием пользоваться http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html Там есть и jdk
Да репозиторий из первого коммента уже недоступен — вот он минус репозиториев. Поэтому статья в двойне полезна т.к. описана прямая установка. И спасибо за негатив, я думал только мне одному приходится разбираться в функционале этого Г-сайта. Это хорошо что вам только яву, когда я скачивал комплект для J2me sdk замучился, там это было так глубоко запихнуто.
Огромное спасибо за мануал.
Та не за чт)
Ошибка почему то, хотя все остальное отработало на ура. И спасибо за статью!
user@user-VirtualBox:/$ ls -la /etc/alternatives/{java, javac, javaws}
ls: cannot access /etc/alternatives/{java,: No such file or directory
ls: cannot access javac,: No such file or directory
ls: cannot access javaws}: No such file or directory
update-alternatives не делали.
Спасибо тебе огромное. Выручил. Написано бодро и здраво, респект тебе inkvizitor68sl
Не за чт )
вот рабочий вариант для chromium, может пригодится кому
sudo ln -s /usr/lib/jvm/$jdir/jre/lib/amd64/libnpjp2.so /usr/lib/chromium-browser/plugins/
или для i386 архитектуры:
sudo ln -s /usr/lib/jvm/$jdir/jre/lib/ш386/libnpjp2.so /usr/lib/chromium-browser/plugins/
> вот рабочий вариант для chromium, может пригодится кому
Он же в .mozilla/plugins тоже смотреть должен?
Ну как бы да, и там и там линк ссылается на libnpjp2.so. Правда не знаю, сработает ли линк из ~/.config/chromium/plugins, но универсальный вариант работает.
Автор, у тебя опечатка:
mv jdk1.7.0_04/ /usr/lib/jvm/ — твое
mv jdk1.7.0_04 /usr/lib/jvm/ — так надо, а то кишки копирует и путь /usr/lib/jvm/$jdir/bin/javac уже не находит
respect!
неплохо бы еще добавить и jar
update-alternatives —install /usr/bin/jar jar /usr/lib/jvm/$jdir/bin/jar 1
Koss@, Alex@
Спасибо, пофиксил.
http://forum.loadcore.ru/index.php?/topic/84-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-java-%D0%BD%D0%B0-debian-6/
Вот ещё нашел способ,вроде бы всё робить. На Debian 6
Спасибо огромное. Проверил на xubuntu 13.04, всё работает.
Та не за чт
evGEN,спс. быстрее и удобнее, проверил на бубунте 12.04
2 epishan
Есть много работающих способов c пакетами, но они теперь противоречат лицензии Java. Из-за этого описан именно «базовый» способ установки.
root@host:~# jdir=jdk1.7.0_04
# здесь после равно нужно указать название каталога, которому мы делали mv
а какому каталогу мы делали mv? home или usr чтот я совсем запутался
Я распаковал в домашнюю паку, сделал mv в /usr/lib/jvm
далее послe jdir= что только не писал, но все равно после команды root@host:~# update-alternatives —install /usr/bin/javac javac /usr/lib/jvm/$jdir/bin/javac 1 пишет альтернативный путь не существует.
Я распаковал в домашнюю папку, сделал mv в /usr/lib/jvm
далее послe jdir= что только не писал, но все равно после команды root@host:~# update-alternatives —install /usr/bin/javac javac /usr/lib/jvm/$jdir/bin/javac 1 пишет альтернативный путь не существует.
jdir=${}
Здесь должно быть название каталога, который распаковался из архива с джавой.
В ls /usr/lib/jvm/ его должно быть видно.
А для NetBean’а этот вариант установки подойдёт? Он вроде как ищет яву в /usr/local/share Качал даже вариант явы вместе с нетбином, один хак не делает там ни каталога ни симлинка…. Оракл хренов.
Забыл уточнить: Кубунта 15.10, НетБин 8.1.
Чего не знаю, того не знаю =)