Пакет J2SDK содержит среду разработки Java от Sun. Он полезен для разработки Java программ и предоставляет среду, необходимую для запуска Java программ. Он так же включает плагин для браузеров, так что они могут понимать Java.
JDK подается в двух вариантах - предкомпилированных бинарниках и исходных текстах. Первоначально плагин, включенный в бинарный пакет JDK, был неиспользуем в LFS по причине несовместимости с браузерами, скомпилированными GCC-3. Это больше не так.
Исходный пакет требует регистрации на сайте разработки Sun и применения лицензии Sun Community Source. Исходный код не может быть скачан из некоторых стран, поэтому для пользователей из этих стран бинарный вариант может быть единственным выбором.
Даже если вы планируете компилировать JDK исходники, вам понадобиться скачать бинарную версию для bootstrap JDK сборки. Следуйте по ссылке ниже для скачивания пакетов с исходниками и бинарниками. При скачивании исходников (нобходимо два файла), так же скачайте пакет заголовков Mozilla, доступных в этом же месте. Для сборки из исходников вам надо скачать все четыре файла.
Адрес для скачивания бинарников: http://java.sun.com/j2se/1.4.2/download.html
Адрес для скачивания исходных текстов: http://www.sun.com/software/communitysource/j2se/java2/download.html
Используемая версия (бинарники): 1.4.2_07
Контрольная сумма (бинарники): a55a9150977de7d5c7f78d29593a8b8c
Контрольная сумма (исходники): http://anduin.linuxfromscratch.org/sources/BLFS/SVN/I-K/j2sdk-1.4.2.md5sums
Размер файлов (бинарники): 36.4 MB
Размер файлов (исходники): 55.1 MB (три .zip файла)
Требуемое дисковое пространство: 1285 MB
Расчетное время сборки: 29.57 SBU
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-fix_inline_asm-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-gcc33-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-motif_mkmsgcat-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-nptl-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-remove_debug_image-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-remove_fixed_paths-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-static_cxx-1.patch
http://www.linuxfromscratch.org/blfs/downloads/6.0/j2sdk-1.4.2-ash-1.patch (Необходим только если /bin/sh является ссылкой на ASH-0.4.0)
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
Обе версии будут установлены параллельно. Вы можете оставить одну или обе.
Установка предкомпилированного 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
Установка CFLAGS/CXXFLAGS/LDFLAGS гаранитирует ошибку сборки. Если вы интересуетесь оптимизацией сборки, установите вместо них OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS.
Дополнительно, если вы желаете проводить параллельную сборку, то добавьте следующее (установите MAKE_PARALLEL для вашей компоновки):
export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL
Если вложенная библиотека Motif не собирается правильно, то ошибка при сборке появится значительно раньше. Решением проблемы является сборка библиотеки Motif перед компиляцией J2SDK.
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...: Описывает файл сертификата для использования.
Теперь есть два 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 используется 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
запускает Java апплеты вне контекста браузера.
проверяет указанный JAR файл на конфликты заголовка и версии с любым расширением, установленным с программами JDK.
генерирует Java связи из данного IDL файла.
объединяет составные файлы в один JAR архивный файл.
отмечает JAR (Java ARchive) файлы и проверяет сигнатуры и чистоту отмеченного JAR файла.
запускает приложение Java запуском окружения Java, загружает указанный класс и вызывает его основной метод.
читает класс и определение интерфейса, написанное на языке программирования Java, и компилирует их в файлы классов.
разбирает объявления коментарии документации в наборе исходных Java файлов и производит соответствующий набор HTML страниц, описывающих классы, интерфейсы, конструкции, методы и поля.
генерирует C заголовок и исходные файлы, которые необходимы для выполнения родных методов.
дизассемблирует файлы классов Java.
простой отладчик командной строки для Java классов.
ключ и утилита управления сертификатом.
преобразует файлы, содержащие не поддерживаемые коды символов, в файлы, содержащие Latin-1 или Unicode кодированные символы.
используется для разрешения клиентам прозрачного расположения и выполнения постоянных объектов на серверах в окружении CORBA.
создает и управляет файлом политик графически.
генерирует остаток и основу файлов классов для удаленных объектов из имен компилированных Java классов, которые содержат реализации удаленного объекта.
запускает активизацию системного демона.
создает и запускает регистрацию удаленного объекта на указанном порту текущего хоста.
возвращает serialVersionUID для одного или более классов в подходящем виде для копирования в развернутые классы.
предоставляет простой в использовании интерфейс для приложения програмистов для регистрации, запуска и остановки сервера.
запускает Java IDL сервер имен.
Последнее обновление 2005-02-26 22:37:02 -0700