JDK-1.5.0

Introducción a JDK

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.

Información sobre el paquete

Parches recomendados

Dependencias de JDK

Requeridas (para construir JDK desde las fuentes)

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

Instalación de JDK

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
[Aviso]

Aviso

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

Explicación de los comandos

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).

Configuración de JDK

Información sobre la configuración

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.

[Nota]

Nota

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.

Contenido

Programas instalados: appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc, javah, javap, javaws, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid, rmiregistry, serialver, servertool y tnameserv
Librerías instaladas: $JAVA_HOME/lib/*, $JAVA_HOME/jre/lib/* y libjavaplugin_oji.so
Directorio instalado: /opt/jdk

Descripciones cortas

appletviewer

Ejecuta subprogramas (applets) Java fuera del contexto de un navegador.

extcheck

Comprueba en un fichero JAR los conflictos en el título y la versión con cualquier extensión instalada en el software JDK.

idlj

Genera vínculos Java a partir de un fichero IDL.

jar

Combina múltiples ficheros en un archivo JAR simple.

jarsigner

Firma ficheros JAR (Java ARchive) y verifica las firmas e integridad de un JAR firmado.

java

Lanza una aplicación Java iniciando el entorno de ejecución Java, cargando la clase especificada e invocando el método principal.

javac

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.

javadoc

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.

javah

Genera las cabeceras C y los ficheros fuente necesarios para implementar métodos nativos.

javap

Desensambla un fichero de clases Java.

javaws

Lanza aplicaciones/subprogramas Java hospedados en una red.

jdb

Un depurador simple en línea de comandos para clases Java.

keytool

Una utilidad para administrar llaves y certificados.

native2ascii

Convierte ficheros que contienen codificaciones de caracteres no soportados a ficheros con codificaciones Latin-1 o Unicode.

orbd

Permite a los clientes localizar e invocar transparéntemente objetos persistentes en servidores en el entorno CORBA.

policytool

Crea y maneja gráficamente ficheros de políticas.

rmic

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.

rmid

Inicia el demonio de activación del sistema.

rmiregistry

Crea e inicia un registro de objeto remoto en el puerto indicado de la máquina actual.

serialver

Devuelve el serialVersionUID para una o más clases en un formato adecuado para copiarlo en una clase envolvente.

servertool

Proporciona una interfaz fácil de usar para programadores que permite registrar, desregistrar, iniciar y parar un servidor.

tnameserv

Inicia el servidor de nombres Java IDL.

Last updated on 2005-04-28 19:55:31 +0200