Как и в описанном ранее случае с Flash, свежеустановленные браузеры Mozilla Firefox, Chromium, Epiphany и Opera для FreeBSD не поддерживают Java. Я не могу сказать, что добавление поддержки Java к любому из указанных браузеров является сложной задачей, однако из-за существования массы устаревших мануалов процесс поиска подходящего «рецепта» в лучшем случае может затянуться на достаточно продолжительное время, а в худшем — закончиться без получения ожидаемого результата.
Краткая историческая справка
В момент моего знакомства с FreeBSD в роли десктопной операционной системы для обеспечения поддержки Java в браузерах Mozilla Firefox, Konqueror и Opera лучше всего подходил плагин из пакета Diablo JDK 1.6 или его аналог из пакета JDK 1.6, собранного с опцией [X] WEB Enable the browser plugin and Java Web Start
. Со временем перечисленные браузеры перестали поддерживать данные плагины, в связи с чем пришлось заменить их плагином из пакета OpenJDK 6, собранного с опцией [X] WEB Enable the browser plugin and Java Web Start
. И, наконец, совсем недавно IcedTea-Web стал самостоятельным пакетом. В настоящее время только он позволяет обеспечить полноценную поддержку Java в последних версиях браузеров Mozilla Firefox, Chromium, Epiphany и Opera для операционной системы FreeBSD.
Исходные данные
Имеется компьютер с операционной системой FreeBSD, на который установлены браузеры Mozilla Firefox, Chromium, Epiphany и Opera (одновременное наличие всех перечисленных браузеров не является обязательным). Для выполнения Java-апплетов в браузерах будет применяться связка OpenJDK 6 (ни в коем случае не OpenJDK 7, не поддерживающего нужную нам функциональность) с IcedTea-Web. В связи с тем, что OpenJDK 6 зависит от Diablo JDK 1.6, придется установить и его. Все упомянутое программное обеспечение будет устанавливаться из предварительно обновленной коллекции портов.
Быстрая установка Diablo JDK 1.6
Пакет Diablo JDK 1.6 имеет непривычную для пользователей FreeBSD лицензию, запрещающую автоматическую загрузку дистрибутивных файлов diablo-caffe-freebsd7-amd64-1.6.x_xx-xxx.tar.bz2
и tzupdater-x_x_xx-xxxxx.zip
со страниц FreeBSD Foundation Java Downloads и Java SE Downloads без ручной установки галочек о прочтении скучного текста на английском языке. В качестве бонуса для читателей моих статей о FreeBSD я буду выкладывать сюда актуальные версии дистрибутивных файлов Diablo JDK 1.6, обновлять команды их загрузки.
В настоящее время для загрузки нужных файлов с этого сайта и последующей установки Diablo JDK 1.6 из портов необходимо выполнить команды:
cd /usr/ports/distfiles fetch /wp-content/uploads/freebsd/diablo-caffe-freebsd7-amd64-1.6.0_07-b02.tar.bz2 /wp-content/uploads/freebsd/tzupdater-1_3_45-2011n.zip cd ../java/diablo-jdk16 make install clean
При выборе опций сборки порта следует убедиться в том, что галочка [X] TZUPDATE Update the time zone data
в окне Options for diablo-jdk 1.6.x.x.x
установлена.
Установка OpenJDK 6 и IcedTea-Web
Для установки OpenJDK 6 и IcedTea-Web из портов необходимо выполнить команды:
cd /usr/ports/java/openjdk6 make install clean cd ../icedtea-web make install clean
Во время выбора опций сборки портов следует убедиться в том, что галочки [X] ICEDTEA Apply additional patches from IcedTea
и [X] PLUGIN Enable the browser plug-in
в окнах Options for openjdk6 x_x
и Options for icedtea-web x.x.x
установлены.
После завершения установки нужно добавить в файл /etc/fstab
определения виртуальных файловых систем fdescfs(5) и procfs(5):
fdesc /dev/fd fdescfs rw 0 0 proc /proc procfs rw 0 0
а затем смонтировать эти файловые системы командами:
mount /dev/fd mount /proc
Добавление поддержки Java в Mozilla Firefox
Для добавления поддержки Java в браузер Mozilla Firefox для текущего пользователя следует создать в папке ~/.mozilla/plugins
символическую ссылку на файл /usr/local/lib/IcedTeaPlugin.so
командой:
ln -s /usr/local/lib/IcedTeaPlugin.so ~/.mozilla/plugins
После перезапуска браузера Mozilla Firefox можно перейти по специальному адресу about:plugins
, убедиться в том, что список Включенные плагины содержит раздел IcedTea-Web Plugin (using IcedTea-Web x.x.x), и начать тестирование добавленной функциональности.
Добавление поддержки Java в Chromium
Добавление поддержки Java в браузер Chromium для текущего пользователя не отличается от аналогичной процедуры для браузера Mozilla Firefox. Если Вы уже добавили поддержку Java в браузер Mozilla Firefox, то браузер Chromium тоже сможет выполнять Java-апплеты, а если Вы не используете браузер Mozilla Firefox, для добавления поддержки Java в браузер Chromium необходимо создать папку ~/.mozilla/plugins
, а затем поместить в нее упомянутую выше символическую ссылку на файл /usr/local/lib/IcedTeaPlugin.so
командами:
mkdir -p ~/.mozilla/plugins ln -s /usr/local/lib/IcedTeaPlugin.so ~/.mozilla/plugins
После выполнения указанных команд можно, не перезапуская Chromium, перейти по специальному адресу about:plugins
, убедиться в том, что список Подключаемые модули содержит раздел IcedTea-Web Plugin (using IcedTea-Web x.x.x), и начать тестирование добавленной функциональности.
Добавление поддержки Java в Epiphany
Для добавления поддержки Java в браузер Epiphany не требуется выполнять ни какие дополнительные действия. Браузер Epiphany, работающий от имени любого пользователя, готов к выполнению Java-апплетов сразу после описанной выше установки Diablo JDK 1.6, OpenJDK 6 и IcedTea-Web.
Добавление поддержки Java в Opera
Если Вы не изменяли конфигурацию плагинов браузера Opera его штатными средствами, для добавления поддержки Java для текущего пользователя не придется выполнять ни какие дополнительные действия. Как и в случае Mozilla Firefox и Chromium, для просмотра списка Плагины можно перейти по специальному адресу about:plugins
и щелкнуть ссылку Обновить плагины. Если эти действия приведут к появлению раздела IcedTea-Web Plugin (using IcedTea-Web x.x.x), можно начать тестирование добавленной функциональности, в противном случае нужно выбрать в главном меню Opera пункт Настройки » Общие настройки… или нажать комбинацию клавиш <Ctrl>+<F12>
, в открывшемся окне Настройки перейти на закладку Расширенные, выбрать раздел Содержимое, установить галочку Включить плагины, и нажать кнопку Настроить плагин…, в открывшемся окне Плагины нажать кнопку Сменить путь…, в открывшемся окне Путь к плагинам нажать кнопку Добавить…, в открывшемся стандартном окне выбора файлов выделить папку /usr/local/lib/browser_plugins
и нажать кнопку OK, в окне Путь к плагинам нажать кнопку OK, в окне Плагины нажать кнопку Найти… После завершения поиска в списке Обнаруженные плагины появятся все найденные плагины, включая IcedTea-Web Plugin (using IcedTea-Web x.x.x), и сразу после закрытия окон Плагины и Настройки браузер Opera сможет выполнять Java-апплеты.
Заключение
Тестирование описанной конфигурации с браузерами Mozilla Firefox, Chromium и Epiphany не выявило никаких проблем. Java-апплеты, встроенные в посещаемые мной сайты, а также в Веб-интерфейсы используемого нами оборудования выполнялись и выполняются без ошибок, поэтому я надеюсь, что предложенная инструкция окажется полезной всем, кто еще не добавил поддержку Java в браузеры Mozilla Firefox, Chromium и Epiphany.
В отличие от коллег, браузер Opera, интегрированный с перечисленным в данной статье программным обеспечением, часто зависает в момент запуска Java-апплетов, поэтому я не могу рекомендовать эту инструкцию его приверженцам, по крайней мере, в настоящее время.
В 2006 ставил линуховую яву и через эмулятор линукса подключал к браузерам…
Тогда я даже не думал, что на десктопе может быть что-то, кроме Windows 🙂
Переписываем хэндбук? 🙂
HP iLo2 с плагином IcedTea-Web у меня на фре работает криво.
Можно ссылку на соответствующий раздел русскоязычного handbook’а?
Какой браузер? В чем кривизна? В
itweb-settings
локальное кэширование включено?Вы ошибаетесь. У меня отлично работает плагин от diablo jdk
libjavaplugin_oji.so -> /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so
Можно узнать версии браузеров?
На всякий случай проверил…
1.
pkg_info | grep chromium
:chromium-15.0.874.121 A mostly BSD-licensed web browser based on WebKit and Gtk+
Отображает плагин Diablo JDK на странице
about:plugins
, но пишет Missing plugin вместо выполнения Java-апплетов.2.
pkg_info | grep epiphany
epiphany-2.30.6_2 An extremely lightweight and simple web browser for GNOME 2
Ничего не пишет и не выполняет Java-апплеты.
3.
pkg_info | grep firefox
:firefox-8.0,1 Web browser based on the browser portion of Mozilla
firefox-i18n-8.0 Localized interface for Firefox
Не видит плагин Diablo JDK.
Konqueror и Opera не использую. Что я делаю не так?
Я тоже сталкивался с ситуациями, когда openjdk и icedtea плагины работали криво или вообще не работали там, где работала нормально родная JRE от Sun (теперь уже Oracle). Чаще всего наблюдалось со всякими интернет-банкингами и веб-интерфейсами IPKVM-ов.
Я сам когда-то с этим сталкивался. Но проект развивается. Перейдя на IcedTea-Web около года назад, я приятно удивился, что все, что мне нужно, работает.
Прошу простить слоупочество, но пока не к кому обратиться — нуб. Как бороться с не соответствием версий
tzupdater-1_3_42-2011k.zip
в 9.0 релиз, когда везде лежит1.3.45-2012
?Если, конечно, здесь еще бывает кто-нибудь.
Кто-нибудь иногда бывает 🙂
Обновите порты 😉
Спасибо за ответ. Но вот это:
вводит меня в ступор. Каким образом оно хочет
tzupdater-1_3_42-2011k.zip
?Или
porturgrade -a
, а затем-r
и-R
всего чего что здесь вижу — неправильно? Не судите строго. Или убейте сразу. Я мог бы не смешить читающих, если бы писал в личку. Если это важно.Таким, что коллекция портов старая. Рекомендую разобраться с тем, что такое коллекция портов FreeBSD. Это одна из основ системы, позволяющая гибко управлять установленным программным обеспечением.
portupgrade
выполняет обновление программного обеспечения ПОСЛЕ ОБНОВЛЕНИЯ КОЛЛЕКЦИИ ПОРТОВ (не считая запуска с ключом-f
, который Вам пока не нужен).Я не судья и не убийца, но Ваше отношение к вопросу наводит на неприятные мысли. Я понимаю, что в IT есть куча сложностей и тонкостей, но здесь все подробно расписано в официальном руководстве. Для таких случаев придумана фраза RTFM.
Такая личка однозначно попадает в СПАМ.
tbsd90_64# uname -a
FreeBSD tbsd90_64 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC
2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
tbsd90_64# portsnap fetch extract
tbsd90_64# grep ^TZUPDATE /usr/ports/java/diablo-jdk16/Makefile
TZUPDATE_VERSION= 1_3_42
TZUPDATE_TZVERSION= 2011k
TZUPDATEFILE= tzupdater-${TZUPDATE_VERSION}-${TZUPDATE_TZVERSION}.zip
А если еще
portsnap fetch update
?Понятно, оказывается
portsnap
не удаляет папки, которые были удалены в репозитории. Другими словами, на тот момент когда anonymous сделалportnap fetch extract
, в репозитории был удален портjava/diablo-jdk16
, в результате чего в/usr/ports
остался порт из дистрибутива (9.0-RELEASE). А вы успели обновить дерево портов до того, как порт был удален в репозитории.Если кто не в теме, в 9.1-RELEASE этот файл уже не нужен.
Забыл написать, что попробую cvsup’нуть, хотя это меня пока пугает.
А Вы не пугайтесь. Handbook прочитайте и вперед.
csup
иportsnap
не кусаются.Как только обновите коллекцию портов, заработает
portupgrade
😉Спасибо за поддержку. Как только с работой разберусь приступлю к исполнению.
В этом году планируются какие-нибудь статьи ещё по FreeBSD :)?
Много чего планируется, но руки не доходят. Ремонт в новостройке 🙁
Ремонт гиблое дело так что удачи :).
Спасибо. Практически все готово 🙂
Как гласит народная мудрость, ремонт нельзя закончить, его можно только приостановить 🙂
Да это понятно. Все хорошо в меру 🙂
Ремонт-это не хорошо.
Это уныло, но важно и нужно 😉
Соглашусь.
Ремонт очень важен и небходим для развития. Однако нужен и не так легок порой. Это касается всех направлений движения )))))
Спасибо за полезную статью!