J2SDK-1.4.1

Introducción a J2SDK

El paquete J2SDK 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í

El paquete fuente requiere que te registres en el sitio de desarrolladores de Sun y que aceptes la Licencia Comunitaria de Sun (Sun Community Source License). El código fuente no puede ser descargado desde ciertos países, de modo que para los usuarios de esos países la única opción es usar el binario.

Incluso si planeas compilar el código fuente del JDK, necesitarás descargar la versión binaria para construir el JDK. Sigue el enlace de abajo para descargar los paquetes fuente y binario. Cuando descargues el código fuente descarga también el paquete con los ficheros de cabecera de Mozilla, disponible en la misma dirección.

Información sobre el paquete

  • Descarga (HTTP): http://freshmeat.net/projects/sunjdk

  • Descarga (FTP):

  • Versión usada (binario): 1.4.2_01

  • Tamaño del paquete (binario): 59 MB

  • Tamaño del paquete (fuentes): 77 MB

  • Estimación del espacio necesario en disco: 1810 MB

  • Tiempo estimado de construcción: 85 SBU

Instalación de J2SDK

Ambas versiones se instalarán en paralelo. Puedes elegir si mantener una o ambas.

Instalar el JDK precompilado es fácil, basta con cambiar el bit de ejecución del fichero descargado, cambiar al directorio donde quieres que se instale y ejecutar el fichero descargado:

VERSION=1.4.2_01 &&
MV=`echo $VERSION | cut -d "_" -f 1,1` &&
V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
chmod +x j2sdk-${V}-linux-i?86.bin &&
./j2sdk-${V}-linux-i?86.bin &&
cd j2sdk${VERSION} &&
install -d /opt/j2sdk/j2sdk-precompiled-${MV} &&
mv * /opt/j2sdk/j2sdk-precompiled-${MV}

Ahora, la versión binaria 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 JDK compilado a la ruta.

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

Descomprime el código fuente y aplica los parches:

VERSION=1.4.1 &&
V=`echo $VERSION | sed -e "s/\./_/g"` &&
unzip j2sdk-${V}-src-scsl.zip &&
unzip j2sdk-${V}-mozilla_headers-unix.zip &&
patch -Np1 -i j2sdk-${VERSION}-gcc33-1.patch &&
patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch &&
patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch &&
patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch &&
patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch &&
patch -Np1 -i j2sdk-${VERSION}-motif-mkmsgcat.patch &&
patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch

Establece 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-`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

Adicioinalmente, se deseas construirlo en paralelo, añade lo siguiente (ajusta MAKE_PARALLEL a tu gusto):

export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL

Si el Motif incluido no se construye correctamente, el error se advierte mucho mas tarde en la construcción. Una solución es construir la librería de Motif antes de compilar el J2SDK.

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

Crea e instala el J2SDK con los siguientes comandos. Habrá un montón de mensajes sobre ficheros no encontrados que parecerán errores. Mientras la compilación no se detenga, los mensajes son inofensivos, ignóralos.

cd control/make &&
make &&
cd ../.. &&
cd control/build/linux-i?86 &&
cp -a j2sdk-image /opt/j2sdk/j2sdk-1.4.1

Explicación de los comandos

export ALT_BOOTDIR="$JAVA_HOME" : Esta variable establece la localización del JDK precompilado que se utilizará para compilar el código fuente del JDK.

export ALT_MOZILLA_PATH=$PWD : Esto establece la variable que apunta a donde has descomprimido los ficheros de cabecera de Mozilla.

export ALT_DEVTOOLS_PATH="/usr/bin" : Esto cambia la localización donde el guión de construcción encuentra los ejecutables necesarios.

export BUILD_NUMBER="blfs-`date +%s`" : Esto te ayudará a identificar esta versión compilada del entorno de ejecución y máquina virtual, añadiendo esta información a la versión, en la salida de java -version.

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 y evita problemas durante la compilación.

unset CLASSPATH : Esto borra la variable CLASSPATH y evita problemas durante la compilación.

unset CFLAGS... : Estas opciones causan una mala compilación. Nunca las uses.

export INSANE=true : A menos que especifiques que estás loco (insane), la compilación no procederá. La plataforma certificada para compilar es RedHat 6.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.

Configuración de J2SDK

Información sobre la configuración

Tenemos dos Java 2 SDK instalados en /opt/j2sdk. Decide cual quieres utilizar por defecto. Por ejemplo, si decides utilizar el J2SDK compilado a partir de los fuentes, haz lo siguiente:

ln -nsf j2sdk-1.4.1 /opt/j2sdk/j2sdk

Añade las siguientes líneas a tu fichero de inicio del intérprete de comandos (p.e. /etc/profile).

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

Añade $JAVA_HOME/man a tu variable MANPATH o a /etc/man.conf

El plugin Java está en el directorio $JAVA_HOME/jre/plugin/i?86/ns610/. Crea un enlace simbólico al fichero en este directorio desde tu directorio de plugins.

Contenido

El paquete J2SDK contiene appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc, javah, javap, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid, rmiregistry, rmiregistry, serialver, servertool y tnameserv.

Descripciones

appletviewer

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

extcheck

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

idlj genera vínculos Java a partir de un fichero IDL.

jar

jar combina múltiples ficheros en un archivo JAR simple.

jarsigner

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

java

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

javac

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

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

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

javap

javap desensambla un fichero de clases Java.

jdb

jdb es un depurador simple en línea de comandos para clases Java.

keytool

keytool es una utilidad para administrar llaves y certificados.

native2ascii

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

orbd

orbd se usa para permitir a los clientes localizar e invocar transparéntemente objetos persistentes en servidores en el entorno CORBA.

policytool

policytool crea y maneja gráficamente ficheros de políticas.

rmic

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

rmid inicia el demonio de activación del sistema.

rmiregistry

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

serialver

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

servertool

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

tnameserv

tnameserv inicia el servidor de nombres Java IDL.