El paquete JDK contiene el entorno de desarrollo de Java de Sun. Sirve para desarrollar programas Java y proporciona el entorno de ejecución necesario para ejecutar dichos programas. También incluye un módulo (plugin) para que los navegadores puedan ejecutar programas Java.
El JDK viene en dos sabores, un binario precompilado y un paquete fuente. Anteriormente, el módulo incluido en el paquete binario JDK no podía utilizarse en LFS debido a la incompatibilidad con los navegadores compilados con GCC-3. Esto ya no es así
Para poder utilizar el código fuente y los parches debes leer y aceptar la Java Research License de Sun. Adicionalmente, el código fuente no puede ser descargado desde ciertos paises, por lo que para los usuarios de estos paises el binario es la única opción.
Si planeas compilar el código fuente del JDK, también necesitarás descargar la versión binaria para construir el JDK. Necesitarás descargar un totlal de cuatro ficheros para completar la construcción de las fuentes: jdk-1_5_0_02-linux-i586.bin; jdk-1_5_0-src-jrl.zip; jdk-1_5_0-bin-jrl.zip; y jdk-1_5_0-mozilla_headers-unix.zip.
Descarga del binario: http://java.sun.com/j2se/1.5.0/download.jsp
Versión usada (binario): 1.5.0_02
Descarga de las fuentes: http://java.sun.com/j2se/jrl_download.html
Suma MD5 del paquete (binario): 562d9797af801bfbe2b5e44417d8ccc4
Suma MD5 del paquete (fuentes): http://anduin.linuxfromscratch.org/sources/BLFS/SVN/I-K/jdk-1.5.0.md5sums
Tamaño del paquete (binario): 45 MB
Tamaño del paquete (fuentes): 65.7 MB (three .zip files)
Estimación del espacio necesario en disco: 1444 MB
Tiempo estimado de construcción: 33.06 SBU
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-gcc_3.4.2+-3.patch
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-motif_mkmsgcat-1.patch
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-nptl-1.patch
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-remove_broken_demo-1.patch
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-remove_fixed_paths-1.patch
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-remove_debug_image-1.patch (Se salta la compilación del depurador de imágenes de JDK)
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-static_cxx-1.patch (Fuerza el enlazado dinámico con las librerías de GCC)
http://www.linuxfromscratch.org/blfs/downloads/svn/jdk-1.5.0-xorg-6.8.1-1.patch (Sólo es necesario si se construye contra X.org-6.8.2)
X (XFree86-4.4.0 o X.org-6.8.2), Zip-2.31, UnZip-5.52, cpio-2.6, ALSA-1.0.8 y Tcsh-6.13.00
Ambas versiones se instalarán en paralelo. Puedes elegir si mantener una o ambas.
Instala el JDK con los siguiente comandos.
export VERSION=1.5.0_02 &&
export MV=`echo $VERSION | cut -d "_" -f 1,1` &&
export V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
sed -i "s:^PATH=.*::" jdk-${V}-linux-i?86.bin &&
chmod +x jdk-${V}-linux-i?86.bin &&
mkdir -p bin &&
ln -sf /bin/true bin/more &&
yes | PATH=$PWD/bin:$PATH ./jdk-${V}-linux-i?86.bin &&
cd jdk${VERSION}
Ahora, como usuario root:
install -d /opt/jdk/jdk-precompiled-${MV} &&
mv * /opt/jdk/jdk-precompiled-${MV}
chown -R root:root /opt/jdk/jdk-precompiled-${MV}
La versión binaria ya está instalada.
Si no quieres compilar el código fuente, o no estás en posición de descargar las fuentes debido a las restricciones de la licencia, pasa a la sección de configuración.
Añade el recién instalado JDK a la ruta.
export JAVA_HOME=/opt/jdk/jdk-precompiled-${MV} &&
export PATH=$PATH:${JAVA_HOME}/bin
Descomprime las fuentes:
mkdir jdk-build &&
cd jdk-build &&
VERSION=1.5.0 &&
V=`echo $VERSION | sed -e "s/\./_/g"` &&
unzip ../jdk-${V}-src-jrl.zip &&
unzip ../jdk-${V}-bin-jrl.zip &&
unzip ../jdk-${V}-mozilla_headers-unix.zip
Aplica todos los parches antes descargados.
for PATCH in ../jdk-1.5.0*.patch
do patch -Np1 -i ${PATCH}
done
Establece/desactiva algunas variables que afectan a la construcción:
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-cvs" &&
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
Establecer CFLAGS/CXXFLAGS/LDFLAGS es garantía para hacer que la construcción falle. Si tienes interes en optimizar la construcción, establece OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS en su lugar.
Adicioinalmente, se deseas construirlo en paralelo, añade lo siguiente:
export HOTSPOT_BUILD_JOBS=[3]
Construye el JDK con los siguientes comandos. Habrá un montón de mensajes sobre ficheros no encontrados que parecerán errores. Esto se debe a que no encuentra el entorno de construcción esperado (RedHat). Mientras la compilación no se detenga, los mensajes son inofensivos.
cd control/make &&
make &&
cd ../build/linux-i?86
Ahora, como usuario root, instala JDK:
cp -a j2sdk-image /opt/jdk/jdk-1.5.0 &&
chown -R root:root /opt/jdk/jdk-1.5.0
Restaura el entorno usando los siguientes comandos:
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 ALT_BOOTDIR="$JAVA_HOME": Esta variable establece la localización del JDK precompilado.
export ALT_MOZILLA_PATH=$PWD: Esto le indica a la construcción donde encontrar el directorio base de los módulos (que contiene las cabeceras de Mozilla).
export ALT_DEVTOOLS_PATH="/usr/bin": Esto cambia la localización donde la construcción encuentra los ejecutables necesarios.
export BUILD_NUMBER="blfs-cvs": Esto te ayudará a identificar la versión compilada del entorno de ejecución y máquina virtual, añadiendo esta información a la versión.
export DEV_ONLY=true: Este comando evita compilar la documentación y elimina una dependencia con rpm.
unset JAVA_HOME: Esto borra la variable JAVA_HOME como recomiendan las instrucciones de la construcción.
unset CLASSPATH: Esto borra la variable CLASSPATH como recomiendan las instrucciones de la construcción.
unset CFLAGS/CXXFLAGS...: Estas opciones causan una mala compilación. Nunca las uses.
export INSANE=true: La plataforma certificada para compilar es RedHat Enterprise Advanced Server 2.1. Esta variable asegura que todos los errores por compilar en una plataforma no certificada se conviertan en advertencias.
export MAKE_VERBOSE=true: Permite que se muestre en la consola el comando actual de compilación.
export ALT_CACERTS_FILE...: Epecifica el fichero de certificados a usar (procedentes del binario JDK instalado).
Ahora tenemos dos Java 2 SDK instalados en /opt/j2sdk. Decide cual quieres utilizar por defecto. Por ejemplo, si decides utilizar el JDK compilado a partir de los fuentes, haz lo siguiente:
ln -nsf jdk-1.5.0 /opt/jdk/jdk
Añade el siguiente fichero de inicio jdk.sh al directorio /etc/profile.d con los siguientes comandos:
cat > /etc/profile.d/jdk.sh << "EOF" # Begin /etc/profile.d/jdk.sh # Set JAVA_HOME directory JAVA_HOME=/opt/jdk/jdk export JAVA_HOME # Adjust PATH and MANPATH pathappend ${JAVA_HOME}/bin PATH pathappend ${JAVA_HOME}/man MANPATH # Auto Java Classpath Updating # Create symlinks to this directory for auto classpath setting AUTO_CLASSPATH_DIR=/usr/lib/classpath if [ -z ${CLASSPATH} ]; then CLASSPATH=.:${AUTO_CLASSPATH_DIR} else pathappend . CLASSPATH pathappend ${AUTO_CLASSPATH_DIR} CLASSPATH fi for i in $(ls ${AUTO_CLASSPATH_DIR}/*.jar 2>/dev/null) do pathappend ${i} CLASSPATH done # End /etc/profile.d/jdk.sh EOF
El módulo Java está en el directorio $JAVA_HOME/jre/plugin/i?86/ns7/. Crea un enlace simbólico al fichero en este directorio desde el directorio de módulos de tu navegador.
El módulo debe ser un enlace simbólico para que funcione. Si no los navegadores fallarán cuando intentes cargar una aplicación Java.
Ejecuta subprogramas (applets) Java fuera del contexto de un navegador.
Comprueba en un fichero JAR los conflictos en el título y la versión con cualquier extensión instalada en el software JDK.
Genera vínculos Java a partir de un fichero IDL.
Combina múltiples ficheros en un archivo JAR simple.
Firma ficheros JAR (Java ARchive) y verifica las firmas e integridad de un JAR firmado.
Lanza una aplicación Java iniciando el entorno de ejecución Java, cargando la clase especificada e invocando el método principal.
Lee definiciones de clases e interfaces, escritas en el lenguaje de programación Java, y las compila en un fichero de clases de código de bytes.
Procesa las declaraciones y comentarios de documentación en un conjunto de ficheros fuente Java y genera un conjunto de páginas HTML con la descripción de clases, interfaces, constructores, métodos y campos.
Genera las cabeceras C y los ficheros fuente necesarios para implementar métodos nativos.
Desensambla un fichero de clases Java.
Lanza aplicaciones/subprogramas Java hospedados en una red.
Un depurador simple en línea de comandos para clases Java.
Una utilidad para administrar llaves y certificados.
Convierte ficheros que contienen codificaciones de caracteres no soportados a ficheros con codificaciones Latin-1 o Unicode.
Permite a los clientes localizar e invocar transparéntemente objetos persistentes en servidores en el entorno CORBA.
Crea y maneja gráficamente ficheros de políticas.
Genera cabos y ficheros de esqueleto de clases para objetos remotos a partir de los nombres de clases Java compiladas que contienen implementaciones de objetos remotos.
Inicia el demonio de activación del sistema.
Crea e inicia un registro de objeto remoto en el puerto indicado de la máquina actual.
Devuelve el serialVersionUID para una o más clases en un formato adecuado para copiarlo en una clase envolvente.
Proporciona una interfaz fácil de usar para programadores que permite registrar, desregistrar, iniciar y parar un servidor.
Inicia el servidor de nombres Java IDL.
Last updated on 2005-04-28 19:55:31 +0200