Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 12. Программирование Вперед

Пакет IcedTea6-1.9.7

Знакомимся с пакетом IcedTea6

В Icedtea6 предоставляются средства работы с пакетом OpenJDK, недавно предложенной фирмой Oracle средой разработки с открытым исходным кодом. Чтобы предоставить полностью свободную среду времени исполнения, аналогичную той, что есть в закрытом дистрибутиве фирмы Oracle, в пакете Icedtea6 также предоставляются бесплатные версии Java-плагина для браузеров и приложения Java Web Start, которые к настоящему времени не являются приложениями с открытым исходным кодом. Icedtea6 используется для разработки Java-программ и предоставляет полную среду времени исполнения для запуска Java-программ.

Замечание

Плагин для браузера и реализация WebStart были выделены в отдельный проект. Чтобы обеспечить полную реализацию в исходных кодах, вам нужно установить последнюю версию IcedTea-Web-1.0.1. В откомпилированном коде имеются компоненты проекта IcedTea-Web.

OpenJDK (и IcedTea6) является кодом с лицензией GPL, однако, следует объяснить, что есть специальное исключение для несвободных проектов, в которых эти классы используются в собственных продуктах. Точно также, как и для лицензии LGPL, под которой несвободные программы могут компоноваться с библиотеками, предоставляемыми свободными проектами, лицензия GNU General Public License, version 2, with the Classpath Exception позволяет сторонним программам использовать классы, предоставляемые свободным программным обеспечением, не требуя, чтобы стороннее программное обеспечение также было свободным. Как и в случае с LGPL, любая модификация, которая осуществляется над свободными частями программного обеспечения сторонних приложений, также должно быть свободным.

Замечание

В архив с исходными кодами OpenJDK включен очень тщательно подобранный открытый набор тестов под названием JTreg. JTreg предназначен для проверки только что собранного JDK на разумную совместимость с закрытым Oracle JDK. Однако, для того, чтобы независимую реализацию объявить совместимой, в том числе и проект OpenJDK, спонсируемый фирмой Oracle, эта реализация должна пройти проверку с помощью закрытого набора тестов JCK/TCK. Если совместимость не требуется, даже частичная, то проверку можно выполнить без прохождения утвержденных тестов.

Oracle предоставил для сообщества свободный доступ, каждому члену сообщества — индивидуальный, к закрытому инструментальному средству, которое обеспечивает 100% совместимость с проприетарным JDK. Двоичная версия, представляемая здесь, не была проверена с помощью TCK. Любая версия, которая собирается по инструкциям, представленным здесь, не может претендовать на совместимость с проприетарным JDK без утверждения пользователя и самих тестов, с помощью которых проверяется совместимость.

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

Информация об исходных кодах пакета

Информация о двоичных модулях пакета

Дополнительные загрузки

Требуемые файлы Jars

Зависимости пакета IcedTea6

Необязательные зависимости времени исполнения (требуются для установки исходного кода)

ALSA Library-1.0.24.1, CUPS-1.5.0, gtk+-2.24.8, Xorg Libraries и Xulrunner-9.0.1

Дополнительные требования (для сборки из исходного кода, в том числе необязательные требования)

Apache Ant-1.8.1, UnZip-6.0, Which-2.20 и Zip-3.0

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/icedtea6

Установка пакета IcedTea6

Инструкции, приведенные ниже, устанавливают как двоичную версию пакета, так так и версию пакета с исходным кодом. Вы можете остановиться после установки двоичной версии или продолжать устанавливать исходный код. Вы можете выбрать установку либо одного пакета, либо обоих пакетов.

Установка двоичного пакета IcedTea6

Начните с распаковки соответствующего двоичного архива и перехода в распакованный директорий. В роли пользователя root установите двоичный пакет IcedTea6 с помощью следующих команд:

cp -R j2sdk-image /opt/icedtea6-1.9.7-bin &&
chown -R root:root /opt/icedtea6-1.9.7-bin

Сконфигурируйте временную инсталляцию IcedTea6 с помощью следующих команд:

export PATH_HOLD="${PATH}" &&
export JAVA_HOME="/opt/icedtea6-1.9.7-bin" &&
export CLASSPATH=".:/usr/share/java" &&
export PATH="${PATH}:${JAVA_HOME}/bin"

Теперь двоичная версия пакета установлена. Если вы не хотите компилировать исходные коды, то переходите к разделу, в котором описывается конфигурирование.

Установка исходного кода пакета IcedTea6

Замечание

Для сборки пакета IcedTea6 из исходного кода требуется пакет Apache Ant-1.8.1. Вам нужно сначала собрать этот пакет с тем, чтобы разрешить взаимную зависимость, а затем вернуться в этот раздел с тем, чтобы собрать пакет IcedTea6.

Как и в случае с другими пакетами в BLFS, начните с распаковки пакета с исходным кодом IcedTea6 и перейдите в распакованный директорий.

Для Icedtea6 требуется несколько свободно доступных файлов jar, необходимых для самораскрутки компилятора. После того, как сборка будет завершена, вы можете оставить эти файлы там где они есть, поскольку они потребуются другим программам, либо, если захотите, удалите их. Если желаете, вы можете вообще выбрать не устанавливать эти файлы, и указать необходимые конфигурационные параметры для поиска файлов. В роли пользователя root установите необходимые инструментальные средства с помощью следующих команд:

mkdir jarfiles &&
cd jarfiles &&
unzip ../../rhino1_7R2.zip &&
unzip ../../xalan-j_2_7_1-bin.zip &&
unzip ../../Xerces-J-bin.2.11.0.zip &&
install -v -d -m755 /usr/share/java &&
install -v -m755 rhino1_7R2/*.jar /usr/share/java &&
install -v -m755 xalan-j_2_7_1/*.jar /usr/share/java &&
install -v -m755 xerces-2_11_0/*.jar /usr/share/java &&
install -v -m755 ../../ecj-3.6.1.jar /usr/share/java &&
ln -s ecj-3.6.1.jar /usr/share/java/ecj.jar &&
ln -s xalan.jar /usr/share/java/xalan2.jar &&
cd .. &&
rm -r jarfiles

Icedtea6 состоит из нескольких отдельных компонентов проприетарного JDK, которые были перелицензированы под открытой лицензией. Поместите все отдельные компоненты в дерево исходных текстов с помощью следующих команд:

mkdir drops &&
cp -v ../jdk6-jaf-b20.zip drops/ &&
cp -v ../jdk6-jaxp-b20.zip drops/ &&
cp -v ../jdk6-jaxws-b20.zip drops/ &&
cp -v ../openjdk-6-src-b20-21_jun_2010.tar.gz .

Примените патч, который позволит использовать установленный IcedTea6 для самораскрутки JDK:

patch -Np1 -i ../icedtea6-1.9.7-upstream_fixes-1.patch

Примените патч для генерации надлежащих файлов cacerts, используемых системными сертификатами CA:

patch -Np1 -i ../icedtea6-1.9.7-generate_cacerts-1.patch

Примените патч для устранения проблемы со сборкой, связанной с использованием последней версии Xerces2:

patch -Np1 -i ../icedtea6-1.9.7-xerces2_10-1.patch

Примените патч для замены фиксированных путей теми, которые будут использоваться в проекте BLFS:

patch -Np1 -i ../icedtea6-1.9.7-fixed_paths-1.patch

Сконфигурируйте и соберите пакет при помощи следующих команд:

unset JAVA_HOME &&
./autogen.sh &&
./configure --with-jdk-home=/opt/icedtea6-1.9.7-bin \
            --enable-cacerts \
            --disable-plugin \
            --disable-webstart &&
make

Чтобы проверить результаты, выполните команду make check. Имеющаяся версия jtreg является старой, а тестовый набор очень сильно зависит от хост-системы. Предполагается, что вы получите 6 или 7 неудач и 1 ошибку при выполнении тестов langtools и от 20 до 23 неудач и до 3-х ошибок при тестировании jdk. Остальные более 4700 тестов должны пройти. Причина непостоянных результатов обусловлена различием в архитектуре, версиями библиотек, от которых зависит пакет, и даже сертификатами CA, используемыми для генерации файла cacerts.

Теперь в роли пользователя root установите пакет с помощью следующих команд:

cp -R openjdk.build/j2sdk-image /opt/icedtea6-1.9.7 &&
chown -R root:root /opt/icedtea6-1.9.7

Пояснение команд

./autogen.sh: Эта команда указывает, что нужно пересобрать автоматически генерируемые файлы в соответствие с новыми параметрами, добавленными в configure.

--with-jdk-home: Этот переключатель указывает место, где расположен временный JDK.

--enable-cacerts: Этот переключатель указывает при сборке пакета генерировать файл cacerts; для этого следует использовать установленные системные сертификаты CA, предназначенные для использования в IcedTea6.

--disable-plugin: Этот параметр отключает сборку имеющегося Java-плагина, предназначенного для браузеров. Имеющийся плагин и реализация webstart были выделены в отдельный проект IcedTea-Web-1.0.1. Не указывайте этот переключатель, если вы не хотите собирать IcedTea-Web отдельно.

--disable-webstart: Этот параметр отключает сборку имеющейся реализации webstart . Как отмечалось выше, webstart был выделен в отдельный проект IcedTea-Web-1.0.1. Не указывайте этот переключатель, если вы не хотите собирать IcedTea-Web отдельно.

Конфигурирование пакета IcedTea6

Подробнее о конфигурировании

Теперь есть два IcedTea6 SDK, установленных в /opt. Вы должны решить, какой из них вы хотели бы использовать по умолчанию. Например, если вы решили использовать предварительно скомпилированный icedtea6, выполните в роли пользователя root следующую команду:

ln -v -nsf icedtea6-1.9.7-bin /opt/icedtea

В информации, приводимой ниже предполагается, что ваша система настроена в соответствии с инструкциями, приведенными в Файлы запуска командной оболочки Bash. Если у вас система настроена по-другому, то вам, возможно, придется найти информацию, соответствующую той, что приведена ниже, и включите ее в файлы запуска вашей системы.

В роли пользователя root добавьте файл запуска командной оболочки icedtea.sh в директорий /etc/profile.d с помощью следующих командам:

cat > /etc/profile.d/icedtea.sh << "EOF"
# Начало файла /etc/profile.d/icedtea.sh

# Установите директорий JAVA_HOME
JAVA_HOME=/opt/icedtea

# Настройте PATH
pathappend ${JAVA_HOME}/bin PATH

# Auto Java CLASSPATH
# Скопируйте файлы jar в этот директорий или создайте символические ссылки
AUTO_CLASSPATH_DIR=/usr/share/java
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
    pathappend $dir CLASSPATH
done

export JAVA_HOME CLASSPATH
unset AUTO_CLASSPATH_DIR
unset dir

# Окончание файла /etc/profile.d/icedtea.sh
EOF

Если вы установили только двоичный дистрибутив, то Java-плагин находится в $JAVA_HOME/jre/lib/<arch>/IcedTeaPlugin.so. Создайте символическую ссылку на файл в этом директории из директория плагинов вашего браузера. Если вы выполняли сборку из исходного кода, то переходите к инструкциям пакета IcedTea-Web-1.0.1 и соберите плагин для браузеров.

Важно

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

Описание пакета

Установленные программы: apt, extcheck, idlj, HtmlConverter, jar, jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi, jconsole, jdb, jhat, jinfo, jmap, jps, jrunscript, jsadebugd, jstack, jstat, jstatd, keytool, native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry, schemagen, serialver, servertool, tnameserv, unpack200, wsgen, wsimport и xjc

Установленные библиотеки: $JAVA_HOME/lib/* и $JAVA_HOME/jre/lib/*

Установленные директории: /opt/icedtea6-1.9.7

Краткое описание

apt

является инструментальным средством обработки аннотаций

extcheck

проверяет, конфликтует ли заголовок и версия указанного файла jar с какими-либо расширениями, установленными в пакете IcedTea

idlj

генерирует Java-сборку из указанного файла IDL

jar

объединяет несколько файлов в одном архив jar

jarsigner

подписывает файлы jar и проверяет сигнатуры и целостность подписанного файла jar

java

запускает Java-приложение с помощью среды времени исполнения Java Runtime, загружая для этого указанный класс и вызывая его метод main

javac

читает определения класса и интерфейса, написанные на языке программирования Java, и компилирует их в файлы классов с байт-кодом

javadoc

анализирует декларации и комментарии с документацией в наборе файлов с исходным кодом Java и создает соответствующий набор страниц HTML, описывающий классы, интерфейсы, конструкторы, методы и поля

javah

строит заголовки С и файлы с исходным кодом, которые необходимы для реализации нативных методов

javap

дизассемблирует файл с классом Java

java-rmi.cgi

является Java RMI клиентом

jconsole

является графической консолью, предназначенной мониторинга и управления как локальными, так и удаленными Java-приложениями и виртуальными машинами

jdb

простой отладчик командной строки для классов Java

jhat

анализирует дамп-файл Java-кучи и позволяет просматривать результат в браузере

jinfo

выдает информацию о конфигурации для данного процесса Java, основном файле или удаленном сервере отладки

jmap

выдает для данного процесса подробную информацию об отображении объектов в памяти и о памяти типа куча, основном файле или удаленном сервере отладки

jps

выдает список инструментальных виртуальных машин JVM на целевой системе

jrunscript

командная оболочка, предназначенная для выполнения команд командной строки

jsadebugd

подключается к процессу Java или к основному файлу и выступает в качестве сервера отладки

jstack

печатает Java трассировку стека потоков Java для заданного Java-процесса, основного файла или удаленного сервера отладки

jstat

отображает статистику производительности для инструментальной JVM

jstatd

серверное приложение RMI, которое отслеживает создание и завершение инструментальных JVM

keytool

утилита управления ключами и сертификатами

native2ascii

преобразует файлы, в которых есть символы неподдерживаемой кодировку в файлы, содержащие символами кодировок Latin-1 или Unicode

orbd

используется, чтобы позволить клиентам на серверах в среде CORBA прозрачно находить и вызывать постоянно существующие (persistent) объекты

pack200

представляет собой приложение Java, которое с помощью компрессора Java gzip преобразует файл jar в сжатый файл pack200

pluginappletviewer

вспомогательная программа для IcedTeaPlugin.so

policytool

в графическом режиме создает и управляет политикой файла

rmic

по именам скомпилированных классов Java, в которых находятся реализации объектов удаленного доступа, создает файлы классов с заглушками и заготовками, предназначенных для доступа к удаленным объектам

rmid

запускает демон активации системы

rmiregistry

создает и запускает реестр удаленных объектов на указанном порту текущего хоста

schemagen

является Java-генератором схем на XML

serialver

возвращает serialVersionUID для одного или нескольких классов в виде, пригодном для копирования в разворачиваемом классе

servertool

предоставляет простой в использовании интерфейс для прикладных программистов, используемый для регистрации, отмены регистрации, запуска и завершения работы сервера

tnameserv

запускает сервер имен IDL языка Java

unpack200

является нативной реализацией, с помощью которой осуществляется преобразование упакованного файла, созданного с помощью pack200 в файл jar

wsgen

создает портируемые варианты JAX-WS, используемый в веб сервисах

wsimport

создает портируемые варианты JAX-WS

xjc

является Java-компилятором, осуществляющим привязку XML

Перевод сделан с варианта оригинала, датированного 2011-10-26 21:29:54 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет Guile-2.0.3   Пакет JDK-6 Update 18