J2SDK-1.4.1

Introduction à j2sdk

Le package J2SDK contient l'environnement de développement Java de Sun. Il est utile pour développer des programmes Java et fournit l'environnement d'exécution nécessaire pour faire fonctionner les programmes Java. Il inclut aussi un plug-in pour les navigateurs de façon à ce qu'ils comprennent Java.

JDK arrive en deux versions, un binaire précompilé et un package source. Précédemment, le plug-in inclus dans le package binaire du JDK était inutilisable sur LFS dû aux incompatibilités avec les navigateurs compilés avec GCC-3. Ce n'est plus le cas.

Le package source requiert de s'enregistrer sur le site développeur de Sun et d'accepter la licence 'Sun Community Source License'. Le code source ne peut pas être téléchargé à partir de certains pays, donc, pour les utilisateurs de ce pays, le binaire est la seule option.

Même si vous pensez compiler le source JDK, vous aurez besoin de télécharger la version binaire pour créer le bootstrap de la construction du JDK. Suivez le lien ci-dessous pour télécharger à la fois le package des sources et celui du binaire. Lors du téléchargement du source, pensez aussi à télécharger le package d'entêtes de Mozilla disponible au même endroit.

Informations sur le package

  • Téléchargement (HTTP): http://freshmeat.net/projects/sunjdk

  • Téléchargement (FTP):

  • Version utilisée (binaire): 1.4.2_01

  • Taille du téléchargement (binaire): 59 Mo

  • Taille du téléchargement (source): 77 Mo

  • Estimation de l'espace disque requis: 1810 Mo

  • Estimation du temps de construction: 85 SBU

Installation de J2SDK

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

L'installation du JDK précompilé est facile, elle change le bit d'exécutable pour le fichier téléchargé, va dans le répertoire où vous souhaitez l'installer et exécute le fichier téléchargé.

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}

La version binaire est maintenant installée.

Si vous ne voulez pas compiler les sources, ou ne pouvez pas pour des raisons de licence, 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}-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

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

De plus, si vous souhaitez le faire en parallèle, ajoutez ce qui suit (ajustez MAKE_PARALLEL à votre appréciation):

export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL

Si le Motif inclus ne peut pas être construit correctement, l'erreur est remarquée plus tard lors de la construction. Une solution est de construire la bibliothèque Motif avant de compiler le J2SDK.

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

Construisez et installez J2SDK avec les commandes suivantes. Il y aura beaucoup de messages sur des fichiers manquants, messages ressemblant à des erreurs. Tant que le construction continue, les messages ne sont pas gênants, 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

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

Le 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é pour 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.