j2sdk-1.4.1

Introduction à j2sdk

Site de téléchargement (HTTP):  http://freshmeat.net/projects/sunjdk
Site de téléchargement (FTP):   
Version utilisée (binaire):       1.4.1_02
Version utilisée (source):       1.4.1
Taille du package (binaire):       59 Mo
Taille du package (source):       77 Mo
Estimation de l'espace disque requis:  1810 Mo

Le package j2sdk contient l'environnement de développement java de Sun. Cela sert à développer des programmes java et apporte un environnement d'exécution nécessaire pour lancer les programmes java. Il inclut aussi un plugin pour que les navigateurs puissent utiliser java.

Le JDK est disponible en deux versions, un package pour les binaires pré-compilés et un package pour les sources. Les binaires pré-compilés sont liés avec les bibliothèques de gcc2. Dû à des problèmes d'incompatibilités entre gcc2 et gcc2, le plugin java pré-compilé peut poser des problèmes lors de son utilisation avec des packages compilés avec gcc3 (par exemple, mozilla). Le package des sources nécessite un enregistrement sur le site de développeurs de Sun ainsi que l'acceptation de la licence Sun (appelée Sun Community Source License). Le code source ne peut pas être téléchargé à partir de certains pays, ce qui fait les binaires seront la seule et unique option des utilisateurs de ces pays.

Même si vous plannifiez de compiler le source du jdk, vous aurez besoin de télécharger la version binaire. Suivez le lien ci-dessus pour télécharger les packages des sources et des binaires. Lors du téléchargement des sources, téléchargez aussi le package des entêtes de mozilla disponible au même emplacement.

Téléchargez les correctifs pour j2sdk sur ftp://ftp.linuxfromscratch.org/blfs-patches/cvs.

Si vous avez des difficultés lors de la construction du jdk, vérifiez les informations contenues dans l'astuce LFS javafromscratch disponible sur http://www.linuxfromscratch.org/~tushar/.

j2sdk dépend de:
xfree86-4.3.0, zip-2.3, unzip-5.50, 
cpio-2.5, tcsh-6.12 et gcc-2.95.3

Installation de j2sdk

Les deux versions seront installées en parallèle. Vous pouvez choisir d'en garder une ou les deux.

Installez la version binaire du jdk en lançant les commandes suivantes:

VERSION=1.4.1_02 &&
MV=`echo $VERSION | cut -d "_" -f 1,1` &&
V=`echo ${VERSION} | sed -e "s/\./_/g"` &&
T=`grep -a tail j2sdk-${V}-linux-i?86.bin | cut -f 2 -d " "` &&
tail $T j2sdk-${V}-linux-i?86.bin > install.sfx.$$ &&
chmod +x install.sfx.$$ &&
./install.sfx.$$ &&
cd j2sdk${VERSION} &&
install -d /opt/j2sdk/j2sdk-precompiled-${MV} &&
mv * /opt/j2sdk/j2sdk-precompiled-${MV}

La version binaire est maintenant installée.

Si vous ne voulez pas compiler les sources, passez directement à la section de configuration.

Ajoutez le JDK tout juste compilé dans le chemin.

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

Décompressez et appliquez le correctif aux sources:

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}-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}-use-included-motif.patch

Mettez en place quelques variables qui modifieront la construction:

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

Le programme motif inclus ne se construit pas correctement avec la version actuelle de glibc/xfree86. Une solution possible est de construire la bibliothèque motif avant de compiler j2sdk. Notez que la construction de motif échoue la première fois à cause de certaines erreurs de syntaxe. La plus simple solution est d'utiliser la force en relançant la commande make :)

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

Lancez le make et installez j2sdk avec les commandes suivantes. Il y aura un grand nombre de messages sur des fichiers manquants, ressemblant à des erreurs. Tant que la construction continue, les messages sont sans gravité, donc ignorez-les.

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

Explication des commandes

T=`grep... : Détermine l'endroit où l'archive tar commence dans l'archive auto-extractible.

patch -Np1 -i j2sdk-${VERSION}-fix-intl-files.patch : Correctif pour les messages dupliqués dans les fichiers intl.

patch -Np1 -i j2sdk-${VERSION}-link-missing-libs.patch : Correctif concernant l'ajout des bibliothèques manquantes, corrigeant ainsi les symbôles non résolus.

patch -Np1 -i j2sdk-${VERSION}-remove-fixed-paths.patch : La construction veut que les binaires se trouvent dans des emplacements spécifiques, ce correctif les modifie pour qu'ils utilisent l'environnement PATH actuel et trouvent ainsi les binaires.

patch -Np1 -i j2sdk-${VERSION}-syntax-fixes.patch : Correctif pour la syntaxe gcc3.

patch -Np1 -i j2sdk-${VERSION}-use-included-motif.patch : Correctif pour renommer la bibliothèque motif interne dans le but d'éviter les conflits avec une version installée par le système qui se révèlerait incompatible.

export ALT_BOOTDIR="$JAVA_HOME" : Cette variable indique l'emplacement du bootstrap JDK.

export ALT_MOZILLA_PATH=$PWD : Cette variable pointe vers l'emplacement où vous avez décompressé les entêtes de mozilla.

export ALT_DEVTOOLS_PATH="/usr/bin" : Ceci modifie l'emplacement où l'outil de construction trouvera les exécutables nécessaires.

export BUILD_NUMBER="blfs-`date +%s`" : Ceci vous aidera à identifier la version, utilisée lors de la compilation, de l'environnement d'exécution et de la machine virtuelle en ajoutant cette information à la version donnée par "java -version".

export DEV_ONLY=true : Cette commande empêche la compilation de la documentation et élimine une dépendance pour rpm.

unset JAVA_HOME : Ceci supprime la variable JAVA_HOME pour prévenir contre un mauvais emplacement lors de la compilation.

unset CLASSPATH : Ceci supprime la variable CLASSPATH pour prévenir contre un mauvais emplacement lors de la compilation.

unset CFLAGS... : Ces variables posent problème lors de la compilation. Ne jamais les laisser.

export INSANE=true : Si vous n'indiquez pas que vous êtes malade, la construction ne continuera pas. La plateforme certifiée pour la construction est une RedHat 6.1. La variable ci-dessus vous assure que toutes les erreurs relatives à la compilation sur une plateforme non certifiée seront changées en messages d'avertissement.

export MAKE_VERBOSE=true : Autorise l'affichage de l'évolution de la compilation sur la console.

export ALT_CACERTS_FILE... Spécifie le certificat à utiliser.

Configurer j2sdk

Informations de configuration

Nous avons deux SDK Java 2 installés dans /opt/j2sdk. Décidez ce que vous souhaitez utiliser par défaut. Par exemple si vous décidez d'utiliser la source j2sdk, faites la suite:

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

Ajoutez les lignes suivantes à votre fichier de démarrage (c'est-à-dire /etc/profile).

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

Ajoutez $JAVA_HOME/man à votre variable MANPATH ou dans /etc/man.conf.

Le plugin java est dans le répertoire $JAVA_HOME/jre/plugin/i?86/ns610/. Créez un lien symbolique vers le fichier dans ce répertoire à partir de votre répertoire plugins.

Contenu

e package j2sdk contient appletviewer, extcheck, idlj, jar, jarsigner, java, javac, javadoc, javah, javap, jdb, keytool, native2ascii, orbd, policytool, rmic, rmid, rmiregistry, rmiregistry, serialver, servertool et tnameserv.

Description

appletviewer

appletviewer lance des applets Java en dehors du contexte d'un navigateur.

extcheck

extcheck vérifie à partir d'un fichier jar spécifié les conflits par rapport à son nom et à sa version avec toutes les extensions installées par le JDK.

idlj

idlj génère des bindings Java à partir d'un fichier IDL donné.

jar

jar combine plusieurs fichiers en une seule archive JAR

jarsigner

jarsigner signe les fichiers JAR (Java ARchive) et vérifie les signatures et l'intégrité d'un JAR signé.

java

java lance une application Java en démarrant l'environnement d'exécution, en chargeant la classe spécifiée et en indiquant la méthode principale de cette classe.

javac

javac lit les définitions de classe et d'interface, écrit en Java, et les compile en fichiers bytecode.

javadoc

javadoc parcourt les déclarations et les commentaires de documentation dans un ensemble de fichiers source et produit un ensemble correspondant de pages HTML, décrivant les classes, interfaces, construteurs, méthodes et champs.

javah

javah génère les fichiers source et entête C, nécessaire pour l'implémentation des méthodes natives.

javap

javap déassemble un fichier classe Java.

jdb

jdb est un simple debugger en ligne de commandes pour les classes Java.

keytool

keytool est un utilitaire de gestion de clé et de certificat.

native2ascii

native2ascii convertit les fichiers contenant un encodage de caractères non supporté en un fichier contenant des caractères encodés en Latin-1 ou en Unicode.

orbd

orbd est utilisé poru permettre aux clients de trouver et invoquer de manière transparente des objets persistants sur des serveurs avec l'environnement CORBA.

policytool

policytool crée et gère un fichier de règles, graphiquement.

rmic

rmic génère des squelettes de fichiers de classe pour des objets distants à partir des noms de classes Java compilés, contenant des implémentations d'objets distants.

rmid

rmid démarre un démon d'activation système.

rmiregistry

rmiregistry crée et démarre un registre d'objets distants sur un port spécifié sur l'hôte courant.

serialver

serialver retourne la variable serialVersionUID pour un ou plusieurs classes dans un format convenable pour être copié dans une classe.

servertool

servertool procure une interface facile à utiliser pour les programmeurs d'applications, pour leur permettre d'enregistrer, supprimer, démarrer et arrêter un serveur.

tnameserv

tnameserv démarre le serveur de nom Java IDL.