IcedTea6-1.9.7

Introduction à IcedTea6

IcedTea6 offre un "crochet" (harness) de construction pour le paquet OpenJDK, l'environnement de développement Java d'Oracle, récemment ouvert. Afin de fournir un environnement à l'exécution complètement libre, similaire à la distribution fermée d'Oracle, le paquet IcedTea6 fournit aussi les versions libres du plugin pour navigateur Java et l'application Java Web Start qui n'a pas été ouverte à ce jour. IcedTea6 sert au développement de programmes Java et fournit un environnement d'exécution complet pour lancer des programmes Java.

[Note]

Note

Le plugin pour navigateur et l'implémentation webstart ont été découpés en deux projets séparés. Pour offrir une implémentation complète dans la construction des sources, vous devrez installer plus tard IcedTea-Web-1.0.1. L'installation du binaire ne contient pas de composants Web IcedTea.

OpenJDK (et IcedTea6) est du code GPL'd, mais il faut savoir qu'il existe une exception spéciale, réservée au projets non libres, pour utiliser ces classes dans leurs produits. Tout comme la LGPL, qui permet à des programmes non libres de se lier à des bibliothèques fournies par le logiciel libre, la GNU General Public License, version 2, avec l'exception Classpath permet à des programmes tiers d'utiliser des classes fournies par le logiciel libre sans obligation que le logiciel tiers soit également libre. Comme avec la LGPL, toute modifictaion apportée à des bouts de logiciel libre d'une application externe doit être rendue également libre.

[Note]

Note

Le paquet des sources d'OpenJDK inclut une suite de tests très approfondie, libre, intitulée JTreg. JTreg vise à tester le JDK à peine construit pour vérifier qu'il est raisonnablement compatible avec le JDK fermé d'Oracle. Cependant, afin qu'une implémentation indépendante soit compatible, y compris le projet OpenJDK soutenu par Oracle, il faut passer une suite de test fermée JCK/TCK. Aucune compatibilité, même partielle, ne peut se faire sans exécuter une suite de tests approuvée.

Oracle laisse un accès libre à la communauté, au cas par cas, à un toolkit fermé pour garantir une compatibilité à 100% avec son JDK propriétaire. La version binaire alors fournie n'a pas été testée contre TCK. Toute version construite en utilisant les instructions données ne peuvent pas être compatible avec le JDK propriétaire sans la souscription de l'utilisateur et sans avoir rempli les tests de compatibilité eux-mêmes.

Ceci étant dit, les binaires produits en utilisant cette méthode de construction sont régulièrement testés contre TCK par les membres listés sur le site ci-dessus. Outre la licence de la communauté ci-dessus, on peut obtenir une licence pour éducation, non commerciale pour TCK ici.

Informations sur les sources

Informations sur le binaire

Téléchargements supplémentaires

Correctifs requis

Fichiers Jar requis

Dépendances d'IcedTea6

Facultatives Runtime Dependencies (required for source installation)

ALSA Library-1.0.24.1, Cups-1.5.0, gtk+-2.24.8, Xorg Libraries, et Xulrunner-9.0.1

Exigences supplémentaires (pour la construction des sources, y compris les exigences facultatives)

Apache Ant-1.8.1, UnZip-6.0, which-2.20, et Zip-3.0

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/icedtea6

Installation d'IcedTea6

Les instructions ci-dessous installent tant la version binaire que des sources. Vous pouvez vous arrêter après l'installation de la version binaire ou continuer d'installer la version source. Vous pouvez choisir l'une ou l'autre ou les deux.

Installation du binaire d'IcedTea6

Commencez par extraire l'archive du binaire adéquate et rendez-vous dans le répertoire extrait. Installez le binaire IcedTea6 avec les commandes suivantes en tant qu'utilisateur root :

cp -R j2sdk-image /opt/icedtea6-1.9.7-bin &&
chown -R root:root /opt/icedtea6-1.9.7-bin

Configurez le l'installation IcedTea6 temporaire avec les commandes suivantes :

export PATH_HOLD="${PATH}" &&
export JAVA_HOME="/opt/icedtea6-1.9.7-bin" &&
export CLASSPATH=".:/usr/share/java" &&
export PATH="${PATH}:${JAVA_HOME}/bin"

La version binaire est maintenant installée. Si vous ne voulez pas compiler les sources, passez à la section de configuration.

Installation des sources d'IcedTea6

[Note]

Note

La construction des sources d'IcedTea6 exige Apache Ant-1.8.1. You devrez le construire préalablement pour satisfaire la dépendance circulaire, puis revenir à cette section pour continuer la construction d'IcedTea6.

Comme d'autres paquets dans BLFS, commencez par extraire le paquet des sources d'IcedTea6 et rendez-vous dans le répertoire extrait.

IcedTea6 exige plusieurs fichiers jar, disponibles gratuitement pour le compilateur bootstrap. Vous pouvez laisser ces éléments installés après la construction, car ils seront nécessaires pour d'autres programmes, ou les supprimer si vous le préférez. Vous pouvez éventuellement opter pour ne pas du tout les installer et fournir les options de configuration nécessaires pour trouver les fichiers. Installez les outils nécessaires avec les commandes suivantes en tant qu'utilisateur root :

mkdir jarfiles &&
cd jarfiles &&
unzip ../../rhino1_7R2.zip &&
unzip ../../xalan-j_2_7_1-bin.zip &&
unzip ../../Xerces-J-bin.2.11.0.zip &&
install -v -d -m755 /usr/share/java &&
install -v -m755 rhino1_7R2/*.jar /usr/share/java &&
install -v -m755 xalan-j_2_7_1/*.jar /usr/share/java &&
install -v -m755 xerces-2_11_0/*.jar /usr/share/java &&
install -v -m755 ../../ecj-3.6.1.jar /usr/share/java &&
ln -s ecj-3.6.1.jar /usr/share/java/ecj.jar &&
ln -s xalan.jar /usr/share/java/xalan2.jar &&
cd .. &&
rm -r jarfiles

IcedTea6 se compose de plusieurs composants distincts du JDK propriétaire qui a été placé sous licence libre. Mettez tous les composants individuellement dans l'arborescence des sources avec les commandes suivantes :

mkdir drops &&
cp -v ../jdk6-jaf-b20.zip drops/ &&
cp -v ../jdk6-jaxp-b20.zip drops/ &&
cp -v ../jdk6-jaxws-b20.zip drops/ &&
cp -v ../openjdk-6-src-b20-21_jun_2010.tar.gz .

Appliquez un correctif pour permettre la construction avec un IcedTea6 installé comme JDK bootstrap :

patch -Np1 -i ../icedtea6-1.9.7-upstream_fixes-1.patch

Appliquez un correctif pour générer un fichier de déclarations valide en utilisant les certificats CA du système :

patch -Np1 -i ../icedtea6-1.9.7-generate_cacerts-1.patch

Appliquez un correctif pour corriger la construction lors d'une utilisation d'une version récente de Xerces2 :

patch -Np1 -i ../icedtea6-1.9.7-xerces2_10-1.patch

Appliquez une correctif pour remplacer des chemins corrigés par ceux adaptés à BLFS :

patch -Np1 -i ../icedtea6-1.9.7-fixed_paths-1.patch

Configurez et construisez le paquet avec les commandes suivantes :

unset JAVA_HOME &&
./autogen.sh &&
./configure --with-jdk-home=/opt/icedtea6-1.9.7-bin \
            --enable-cacerts \
            --disable-plugin \
            --disable-webstart &&
make

Pour tester les résultats, lancez : make check. La version incluse de jtreg est ancienne, et la suite de tests dépend également beaucoup du système hôte. Vous devriez vous attendre à voir 6 ou 7 échecs et une erreur au test langtools, ainsi que 20 à 23 échecs dans jdk jusqu'à 3 erreurs. Les plus de 4700 autres tests devraient réussir. La raison des résultats de la variable est une différence d'architechtures, des versions des bibliothèques dépendantes, et même des certificats CA utilisés pour générer le fichier cacerts.

Installez le paquet avec les commandes suivantes en tant qu'utilisateur root :

cp -R openjdk.build/j2sdk-image /opt/icedtea6-1.9.7 &&
chown -R root:root /opt/icedtea6-1.9.7

Explications de la commande

./autogen.sh : Cette commande oblige la reconstruction de fichiers générés automatiquement pour tenir compte des nouvelles options ajoutées à configure.

--with-jdk-home : Ce paramètre précise l'emplacement du JDK temporaire.

--enable-cacerts : Ce paramètre permet à la construction de générer un fichier de déclarations à partir des certificats CA installés sur le système, adapté à l'utilisation par IcedTea6.

--disable-plugin : Ce paramètre désactive la construction du plugin de navigateur Java inclu. Le plugin inclu et l'implémentation webstart a été placée dans un projet séparé IcedTea-Web-1.0.1. Enlevez ce paramètre si vous ne souhaitez pas construire séparément IcedTea-Web.

--disable-webstart : Ce paramètre désactive la construction de l'implémentation incluse de webstart. Comme indiqué ci-dessus, webstart a été découpé dans le projet séparé IcedTea-Web-1.0.1. Enlevez ce paramètre si vous ne voulez pas construire IcedTea-Web séparément.

Configuration de IcedTea6

Informations de configuration

Deux SDKs IcedTea6 sont maintenant installés dans /opt. Vous devriez choisir lequel vous voulez utiliser par défaut. Par exemple, si vous décidez d'utiliser le IcedTea6 précompilé, lancez ce qui suit en tant qu'utilisateur root :

ln -v -nsf icedtea6-1.9.7-bin /opt/icedtea

Les informations ci-dessous supposent que votre système est paramétré en utilisant les instructions qui se trouvent dans « The Bash Shell Startup Files ». Il se peut que vous deviez extraire les informations pertinentes ci-dessous pour les répercuter dans les fichiers de démarrage de votre système si votre système est réglé différemment.

Ajoutez le fichier de démarrage de shell icedtea.sh suivant au répertoire /etc/profile.d avec les commandes suivantes en tant qu'utilisateur root :

cat > /etc/profile.d/icedtea.sh << "EOF"
# Début de /etc/profile.d/icedtea.sh

# Paramétrage du répertoire JAVA_HOME
JAVA_HOME=/opt/icedtea

# Ajustement du PATH
pathappend ${JAVA_HOME}/bin PATH

# Auto Java CLASSPATH
# Copiez-y les fichiers jar ou créez des liens symboliques vers ce répertoire
AUTO_CLASSPATH_DIR=/usr/share/java
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
    pathappend $dir CLASSPATH
done

export JAVA_HOME CLASSPATH
unset AUTO_CLASSPATH_DIR
unset dir

# Fin de /etc/profile.d/icedtea.sh
EOF

Si vous n'avez installé que la distribution binaire, le plugin Java se trouve dans $JAVA_HOME/jre/lib/<arch>/IcedTeaPlugin.so. Créez un lien symbolique vers le fichier dans ce répertoire partant du répertoire de plugins de vos/votre navigateur(s). Si vous avez construit à partir des sources, référez-vous aux instructions de IcedTea-Web-1.0.1 pour construire le plugin du navigateur.

[Important]

Important

Le plugin doit être un lien symbolique pour fonctionner. Sans cela, les navigateurs planteront quand vous essaierez de charger une application Java.

Contenu

Programmes installés: apt, extcheck, idlj, HtmlConverter, jar, jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi, jconsole, jdb, jhat, jinfo, jmap, jps, jrunscript, jsadebugd, jstack, jstat, jstatd, keytool, native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry, schemagen, serialver, servertool, tnameserv, unpack200, wsgen, wsimport, et xjc
Bibliothèques installées: $JAVA_HOME/lib/*, et $JAVA_HOME/jre/lib/*
Répertoire installé: /opt/icedtea6-1.9.7

Descriptions courtes

apt

est un traitement d'annotation.

extcheck

vérifie les conflits de version et de titre d'un fichier spécifié avec les extensions installées dans le logiciel IcedTea.

idlj

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

jar

combine plusieurs fichiers dans une archive jar.

jarsigner

signe des fichiers jar et vérifie les signatures et l'intégrité d'un fichier jar signé.

java

lance une application Java en démarrant un environnement d'exécution Java, en chargeant une classe spécifiée et en appelant sa méthode principale (main).

javac

lit des définitions de classe et d'interface écrites en langage de programmation Java et les compile en fichiers de classe binaire (bytecodes).

javadoc

analyse les commentaires de déclarations et de documentation d'un ensemble de fichiers sources Javaet produit un ensemble de pages HTML correspondant qui décrit les classes, les interfaces, les mçthodes de fabricants et les champs.

javah

génère des fichiers sources et d'en-tête C nécessaires pour implément des méthodes natives.

javap

désassemble un fichier de classe Java.

java-rmi.cgi

est le client RMI Java.

jconsole

est une console graphique pour surveiller et gérer tant les applications Java locales et distantes que les machines virtuelles.

jdb

est un simple débogueur en ligne de commande pour les classes Java.

jhat

analyse un fichier dup heap Java et permet de la visualiser avec un navigateur Internet.

jinfo

affiche des informations de configuration Java d'un processus Java, d'un fichier core (cœur), or d'un serveur de débogage distant, donnés.

jmap

affiche les plans de partage de la mémoire objet ou les détails de la mémoire heap d'un processus, d'un fichier core ou d'un serveur de débogage distant, donnés.

jps

liste les JVMs manipulés sur le système cible.

jrunscript

est un shell de scripts en ligne de commande.

jsadebugd

s'attache à un processus Java ou à un fichier core et agit comme serveur de débogage.

jstack

affiche les traces de la pile Java des fils (threads) Java pour un processus Java, un fichier core ou un serveur de débogage distant donnés.

jstat

affiche les statistiques de performance pour un JVM manipulé.

jstatd

est un serveur RMI qui surveille la création et la fin des JVMs manipulés.

keytool

est un gestionnaire de clés et de certificat.

native2ascii

convertit des fichiers contenant un encodage non supporté en fichiers contenant de l'encodage Latin-1 ou des caractères Unicode.

orbd

est utilisé pour permettre aux clients de localiser et d'appeler de manière transparente des objets persistants sur les serveurs d'un environnement CORBA.

pack200

est une application Java qui transforme un fichier jar file en fichier pack200 compressé en utilisant le compresseur gzip Java.

pluginappletviewer

est un programme helper pour IcedTeaPlugin.so.

policytool

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

rmic

génère des fichiers talon ou squelette de classe pour les objets distants à partir des noms des classes Java compilées contenant des implémentations d'objet distantes.

rmid

démarre le démon du système d'activation.

rmiregistry

crée et démarre un registre d'objets distant sur le port spécifié de la machine actuelle.

schemagen

est un générateur de schéma de binding XML Java.

serialver

retourne le serialVersionUID d'une ou plusieurs classes d'une façon adaptée à la copie dans une classe en évolution.

servertool

offre une interface facile à utiliser pour les programmeurs d'application, pour enregistrer, désenregistrer, démarrer et arrêter un serveur.

tnameserv

démarre le serveur de domaines IDL Java.

unpack200

est une implémentation native transformant un fichier packed (rempli) produit par pack200 en fichier jar.

wsgen

génère des objets portables JAX-WS utilisés dans des services Web JAX-WS.

wsimport

génère des objets portables JAX-WS.

xjc

est un compilateur de binding XML Java.

Last updated on 2011-10-26 23:29:54 +0200