Java/fr

Ce guide vous introduit à Java et vous explique comment l'utiliser avec Gentoo Linux.

Vue d'ensemble
Java est un langage de programmation qui a été développé par les ingénieurs de Sun Microsystems. C'est un langage orienté objet et conçu pour être exécuté sur des plateformes multiples sans avoir à recompiler le code pour chacune des plateformes. Bien que Java puisse être compilé comme un programme natif, la popularité de Java est essentiellement attribuable à sa portabilité, et à d'autres fonctionnalités comme la fonction éboueur. Pour rendre possible l'indépendance de la plateforme, le compilateur Java compile le code en une représentation intermédiaire appelée Java bytecode qui tourne sur un environnement d'exécution Java ou JRE et pas directement sur le système d'exploitation.

Afin d'exécuter le Java bytecode, il faut avoir un environnement d'exécution Java (Java Run Time Environment ou JRE) installé. Le JRE procure, parmi d'autres, les librairies du cœur, une machine virtuelle Java dépendante de la plateforme et des greffons pour les navigateurs. Un kit de développement Java (Java Development Kit ou JDK) ajoute des outils de programmation comme un compilateur de bytecote et un débogueur.

Les choix possibles
Gentoo procure de nombreux environnement d'exécution (JREs) et kits de développement (JDKs). Dans les choix courants, nous trouvons :

Installer un JRE/JDK
Pour installer le JDK par défaut de votre profil, exécutez. Ou pour installer le JRE par défaut de votre profil, exécutez.

Quelques JDKs et JREs, y compris les paquets de Sun, nécessitent que l'utilisateur accepte un contrat de licence utilisateur final CLUF (en anglais End User License Agreement ou EULA). Si cette licence (telle que dlj-1.1) n'est pas listée dans la variable ACCEPT_LICENSE dans, vous ne serez pas en mesure d'installer le JDK/JRE. Pour savoir comment ajouter des licences acceptables à, reportez-vous au manuel de Portage.

Pour éviter le désagrément d'une licence trop restrictive, installez plutôt, qui est une mise en œuvre libre de Java du projet OpenJDK.

Installer une machine virtuelle à recherche restreinte
Quelques JDKs et JREs vous obligent à faire quelques explorations avant l'installation. Installez (avec emerge) les paquets comme vous le feriez normalement. Les ebuilds vous indiqueront où aller et quoi télécharger.

Vous devriez télécharger les fichiers indiqués dans. Une fois ces fichiers en place, vous pouvez relancer la commande emerge qui commencera alors à installer le JRE/JDK.

Vue d'ensemble
Gentoo a la capacité à avoir plusieurs JDKs et JREs installés sans que cela ne crée de conflit.

En utilisant l'outil, vous pouvez définir la version par défaut applicable à tout le système  (à condition que vous ayez un accès super-utilisateur). Les utilisateurs peuvent également utiliser  pour définir leur propre version par défaut.

Définir une machine virtuelle par défaut
En exécutant la commande  vous obtiendrez une liste de tous les JREs et JDKs installés sur votre système. Voici un exemple de sortie de cette commande :

Le signe * indique la machine virtuelle courante (machine virtuelle système ou utilisateur lorsque définie). Le nom entre les crochets carrés ([]) est la poignée ou l'identifiant de cette machine virtuelle particulière. Vous pouvez utiliser la poignée ou le numéro pour la définir avec. Voici un exemple de comment définir la machine virtuelle système.

Définir la machine virtuelle système à l'aide de la poignée (solution préférée):

Vous pouvez également la définir à l'aide des numéros.

En tant qu'utilisateur ordinaire, vous pouvez utiliser.

Machines virtuelles Build Only
Quelques machines virtuelles sont marquées comme build-only (compilation seulement) parce qu'elles contiennent des vulnérabilités ou sont en fin de vie. Ces machines virtuelles ne seront pas utilisées automatiquement par Gentoo pour exécuter des applications à l'aide des lanceurs Gentoo, mais resteront disponibles pour l'environnement de compilation de Gentoo car certains paquets pourront encore en avoir besoin pour leur compilation. Définir ces machines virtuelles en tant que machine virtuelle par défaut (système ou utilisateur) est très fortement déconseillé car ces machines virtuelles seraient alors utilisées lors de l'exécution des exécutables  et seraient aussi utilisées par tout paquet n'utilisant pas les scripts de lancement de Gentoo.

Machine virtuelle préférée pour la compilation
Lors de l'installation de paquets Java, la machine virtuelle utilisée pour la compilation peut parfois être différente de celle définie en tant que machine virtuelle par défaut du système.

Cette commutation de machine virtuelle lors de la compilation est nécessaire quand, par exemple, votre machine virtuelle système est définie à 1.6  et que le paquet que vous êtes en train d'installer nécessite une machine virtuelle 1.5. Lors de la compilation la machine 1.5 sera utilisée, sans toucher à votre choix de machine virtuelle par défaut du système.

Pour définir quelle machine virtuelle sera choisie lorsqu'une commutation est nécessaire, nous avons créé une liste des machines virtuelles par défaut prises en charge par architecture. Vous les trouverez dans.

Vous pouvez supplanter ces machines par défaut (et même votre machine virtuelle système choisie) dans et contrôler complètement quelle machine virtuelle sera utilisée pour l'installation.

Par exemple, pour utiliser  dans tous les cas :

Ou utiliser   à chaque fois que possible, sauf lorsqu'une machine virtuelle  1.4 ou 1.3 est explicitement requise :

Ou utiliser différents fournisseurs pour différentes versions, comme requérir   si une machine 1.3 (j'ai bien dit, 1.3) est demandée,et se rabattre sur    dans les autres cas :

Compilers
The standard Java compiler used for building is, which comes with each JDK. In addition to configuring the VM used at build time, it is also possible configure which compiler is used. Essentially, you define a list your preference for which compiler to use in.

Some compilers don't support all possible -target and -source arguments. Therefore, each compiler in the list is checked to see if it can support the desired -source/-target. javac will work in all cases, so if no other suitable compiler is found, it will be used instead.

More details about each compiler are provided below:

Setting a default CLASSPATH
can also be used to set a system-wide default CLASSPATH, as well a user-specific default CLASSPATH.

First, you will want to list available Java libraries installed on your system that might want to be put in your CLASSPATH. Here is an example of output:

Again, the names in brackets ([]) are the IDs that you have to pass to. Here is an example:

You will have to update your environment by logging out, then in again or sourcing.

For users,  will create, which you should then source from your shell's profile.

Sourcing user specific classpath

If you really want a system wide or user default classpath you can add something like the following to your shell's profile. But we would advise against it.

Installing a plugin
You can install a Java plugin for your web browser by emerging a Java VM with the  USE flag set.

Portage will allow you to install multiple versions of Java plugins, though only one will be used by your browser. You can check the list of available plugins by running:

In this example,  is selected for the browser plugin.

Verify that the correct plugin was selected:

Java.com also provides a link to verify your installed plugin. Additionally, if you are using a Mozilla-based browser, you can verify your Java plugin by typing  into the address bar.

Plugins on multilib systems
If you are running a mixed 64-bit and 32-bit multilib system (for example, on AMD64), you can use 64-bit and 32-bit Java plugins. Unless you have a pressing need to run 32-bit Java applications, we recommend using native 64-bit plugins on 64-bit web browsers.

There are several native 64-bit browser plugins available. The default JDK/JRE pair,  and , both include browser plugins. Just emerge one of them with the  USE flag enabled.

To use a 32-bit plugin on a 32-bit browser, you will need to emerge  with the   USE flag enabled.

Next, check which plugins are available:

Now select the right plugin for your browsers:

Verify the correct plugin was selected:

Setting USE flags
For more information regarding USE flags, refer to the USE flags chapter from the Gentoo Handbook.

The flags

 * The java flag adds support for Java in a variety of programs
 * The nsplugin flag adds support for Mozilla-like browsers (including Firefox). You will need this for viewing Java applets in your Mozilla-like browser.
 * The source flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries you are using.
 * The jce flag adds support for the Java Cryptography Engine
 * For Java packages, the doc flag will build API documentation using javadoc.

Off-line resources

 * java-config man page

Online resources

 * The Java Project Page
 * The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
 * #gentoo and #gentoo-java on IRC
 * Wikipedia's entry for Java
 * If you have suggestions or questions regarding this document, please email the Gentoo Java team:

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * Joshua Nichols
 * Karl Trygve Kalleberg
 * Joshua Saddler