RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Beyond Linux From Scratch. Версия 6.0

Глава 12. Программирование

J2SDK-1.4.2

Введение в J2SDK

Пакет J2SDK содержит среду разработки Java от Sun. Он полезен для разработки Java программ и предоставляет среду, необходимую для запуска Java-программ. Он также включает плагин для браузеров, так что они могут понимать Java.

JDK поставляется в двух вариантах: предкомпилированных бинарниках и исходных текстах. Первоначально плагин, включенный в бинарный пакет JDK, был неиспользуем в LFS по причине несовместимости с браузерами, скомпилированными GCC 3. Это больше не так.

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

Даже если Вы планируете компилировать JDK из исходников, Вам понадобиться скачать бинарную версию для bootstrap JDK сборки. Следуйте по ссылке ниже для скачивания пакетов с исходниками и бинарниками. При скачивании исходников (необходимо два файла), также скачайте пакет заголовков Mozilla, доступных в этом же месте. Для сборки из исходников Вам надо скачать все четыре файла.

Информация о пакете

Дополнительно

Зависимости J2SDK

Требуемые (для сборки J2SDK из исходников)

X (XFree86-4.4.0 или X.org-6.8.2), Zip-2.31, UnZip-5.51, cpio-2.6, ALSA-1.0.7, Tcsh-6.13.00 и GCC-3.3.4.

Установка J2SDK

Обе версии будут установлены параллельно. Вы можете оставить одну или обе.

Установка предкомпилированного JDK простая: создайте каталог, из которого будете устанавливать, скопируйте в него .bin и выполните следующие команды:


export VERSION=1.4.2_07 &&
export MV=`echo $VERSION | cut -d "_" -f 1,1` &&
export V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
sed -i "s:^PATH=.*::" j2sdk-${V}-linux-i?86.bin &&
chmod +x j2sdk-${V}-linux-i?86.bin &&
mkdir -p bin &&
ln -sf /bin/true bin/more &&
yes | PATH=$PWD/bin:$PATH ./j2sdk-${V}-linux-i?86.bin &&
cd j2sdk${VERSION}

А теперь, как пользователь root:


install -d /opt/j2sdk/j2sdk-precompiled-${MV} &&
mv * /opt/j2sdk/j2sdk-precompiled-${MV}
chown -R root:root /opt/j2sdk/j2sdk-precompiled-${MV}

Бинарная версия установлена.

Если Вы не хотите компилировать исходники или находитесь в месте, где не можете скачать исходники из-за лицензионных ограничений, перейдите к разделу конфигурации.

Добавьте установленный JDK в путь поиска файлов.


export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &&
export PATH=$PATH:${JAVA_HOME}/bin

Распакуйте исходники:


mkdir j2sdk-build &&
cd j2sdk-build &&
VERSION=1.4.2 &&
V=`echo $VERSION | sed -e "s/\./_/g"` &&
unzip ../j2sdk-${V}-src-scsl.zip &&
unzip ../j2sdk-${V}-mozilla_headers-unix.zip &&
unzip ../j2sdk-${V}-bin-scsl.zip

Примените все патчи, указанные выше.


for PATCH in ../j2sdk-1.4.2*.patch
do
   patch -Np1 -i $PATCH
done

Установите/удалите некоторые переменные, влияющие на сборку:


export ALT_BOOTDIR="$JAVA_HOME" &&
unset JAVA_HOME &&
unset CLASSPATH
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
export ALT_DEVTOOLS_PATH="/usr/bin" &&
export BUILD_NUMBER="blfs-`date +%s`" &&
export DEV_ONLY=true &&
export ALT_MOZILLA_PATH=$PWD &&
export INSANE=true &&
export MAKE_VERBOSE=true &&
export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts
export PATH_HOLD=$PATH
export PATH=/opt/gcc-3.3.4/bin:$PATH
[Warning]

Внимание

Установка CFLAGS/CXXFLAGS/LDFLAGS гаранитирует ошибку сборки. Если Вы интересуетесь оптимизацией сборки, установите вместо них OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS.

Дополнительно, если Вы желаете проводить параллельную сборку, то добавьте следующее (установите MAKE_PARALLEL для Вашей компоновки):


export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL

Если вложенная библиотека Motif не собирается правильно, то ошибка при сборке появится значительно раньше. Решением проблемы является сборка библиотеки Motif перед компиляцией J2 SDK.


cd motif/lib/Xm &&
make &&
cd ../../..

Соберем J2SDK при помощи следующих команд. Здесь будет много сообщений об отсутствии файлов, которые будут выглядеть как ошибки. Поскольку сборка не останавливается, то сообщения бесполезны и могут быть проигнорированы.


cd control/make &&
make &&
cd ../build/linux-i?86

А теперь, как пользователь root, установим J2SDK :


cp -a j2sdk-image /opt/j2sdk/j2sdk-1.4.2 &&
chown -R root:root /opt/j2sdk/j2sdk-1.4.2

Восстановим переменные выполнением следующих команд:


unset VERSION &&
unset MV &&
unset V &&
unset ALT_BOOTDIR &&
unset ALT_DEVTOOLS_PATH &&
unset BUILD_NUMBER &&
unset DEV_ONLY &&
unset ALT_MOZILLA_PATH &&
unset INSANE &&
unset MAKE_VERBOSE &&
unset ALT_CACERTS_FILE &&
export PATH=$PATH_HOLD &&
unset PATH_HOLD

Описание команд

export ALT_BOOTDIR="$JAVA_HOME" : Эта переменная устанавливает размещение bootstrap JDK.

export ALT_MOZILLA_PATH=$PWD : Это установит переменную, указывающую на место с распакованными заголовками Mozilla.

export ALT_DEVTOOLS_PATH="/usr/bin": Это изменит место для поиска необходимых бинарников при сборке.

export BUILD_NUMBER="blfs-`date +%s`": Это поможет Вам определить текущую компилированную версию окружения и виртуальной машины добавлением этой информации к версии в выводе команды java -version.

export DEV_ONLY=true: Эта команда исключает компиляцию документации и зависимостей для rpm.

unset JAVA_HOME: Это очищает переменную JAVA_HOME согласно рекомендации инструкций по сборке.

unset CLASSPATH: Это очищает переменную CLASSPATH согласно рекомендации инструкций по сборке.

unset CFLAGS...: Эти флаги означают неудачную сборку. Не устанавливаем их.

export INSANE=true: Если Вы не установите, что Вы insane, сборка не произойдет. Сертифицированной платформой для сборки является Redhat 6.1. Эта переменная подтверждает, что все ошибки, относящиеся к сборке на несертифицированной платформе, будут преобразованы в предупреждения.

export MAKE_VERBOSE=true: Позволяет текущей команде компиляции быть отображенной в консоли.

export ALT_CACERTS_FILE...: Описывает файл сертификата для использования.

Конфигурация J2SDK

Конфигурационная информация

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


ln -nsf j2sdk-1.4.2 /opt/j2sdk/j2sdk

Добавьте следующие строки в стартовый файл оболочки (то есть в /etc/profile).


export JAVA_HOME=/opt/j2sdk/j2sdk
export PATH=$PATH:$JAVA_HOME/bin

Добавьте $JAVA_HOME/man в Вашу переменную MANPATH или в /etc/man.conf.

Java-плагин находится в каталоге $JAVA_HOME/jre/plugin/i?86/ns610/. Сделайте символическую ссылку на файл из этого каталога в Вашем каталоге плагинов. Заметьте, что плагин должен быть символической ссылкой для его работы. Если это не так, то браузеры будут падать при попытке загрузки Java-плагина.

Поддержка CLASSPATH

При сборке пакетов переменная окружения CLASSPATH используется JDK для размещения классов во время сборки и выполнения. Это утомительно добавлять все используемые классы в CLASSPATH вручную. Вы можете добавить следующие строки в стартовый файл оболочки для установки CLASSPATH автоматически для включения всех JAR-файлов в указанном каталоге, которым в примере ниже является /usr/lib/auto-java-classpath.


AUTO_CLASSPATH_DIR=/usr/lib/auto-java-classpath
if [ -z $CLASSPATH ]
then
CLASSPATH=.:$AUTO_CLASSPATH_DIR
else
CLASSPATH=$CLASSPATH:.:$AUTO_CLASSPATH_DIR
fi
for i in $(ls $AUTO_CLASSPATH_DIR/*.jar 2>/dev/null)
do
CLASSPATH=$CLASSPATH:$i
done

Содержание

Установленные программы: appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc, javah, javap, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid, rmiregistry, serialver, servertool и tnameserv. Установленные библиотеки: $JAVA_HOME/lib/*, $JAVA_HOME/jre/lib/* и libjavaplugin_oji.so. Установленные каталоги: /opt/j2sdk.

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

appletviewer

Запускает Java-апплеты вне контекста браузера.

extcheck

Проверяет указанный JAR-файл на конфликты заголовка и версии с любым расширением, установленным с программами JDK.

idlj

Генерирует Java-связи из данного IDL-файла.

jar

Объединяет составные файлы в один JAR архивный файл.

jarsigner

Отмечает JAR (Java ARchive) файлы и проверяет сигнатуры и чистоту отмеченного JAR-файла.

java

Запускает приложение Java запуском окружения Java, загружает указанный класс и вызывает его основной метод.

javac

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

javadoc

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

javah

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

javap

Дизассемблирует файлы классов Java.

jdb

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

keytool

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

native2ascii

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

orbd

Используется для разрешения клиентам прозрачного расположения и выполнения постоянных объектов на серверах в окружении CORBA.

policytool

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

rmic

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

rmid

Запускает активизацию системного демона.

rmiregistry

Создает и запускает регистрацию удаленного объекта на указанном порту текущего хоста.

serialver

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

servertool

Предоставляет простой в использовании интерфейс для приложения програмистов для регистрации, запуска и остановки сервера.

tnameserv

Запускает Java IDL-сервер имен.

Последнее обновление 2005-02-26 22:37:02 -0700.

Поиск

 

Найди своих коллег!