Java

De ArchwikiFR

Java est un langage de programmation orienté objet créé par Sun Microsystems.

Arch Linux soutient officiellement les versions open source d'OpenJDK 7 et 8. Toutes ces JVM peuvent être installées sans conflit et il est possible de basculer de l'utilisation de l'une à l'autre via le script d'aide archlinux-java. Plusieurs autres environnements Java sont disponibles dans AUR, mais ne sont pas officiellement pris en charge.

Installation

Les paquets suivants sont disponibles dans les dépôts officiels:

OpenJDK 7:

Package name Use
jre7-openjdk-headless environnement d'exécution Java (JRE) sans aucun outil graphique - version 7
jre7-openjdk environnement d'exécution Java complet (JRE) - version 7
jdk7-openjdk kit de développement Java (JDK) - version 7
openjdk7-doc javadoc OpenJDK- version 7
openjdk7-src sources OpenJDK - version 7

OpenJDK 8:

Package name Use
jre8-openjdk-headless environnement d'exécution Java (JRE) sans aucun outil graphique - version 8
jre8-openjdk environnement d'exécution Java complet (JRE) - version 8
jdk8-openjdk kit de développement Java (JDK) - version 8
openjdk8-doc OpenJDK javadoc - version 8
openjdk8-src OpenJDK sources - version 8
Note: L'installation d'un JDK sera automatiquement suivie de celle de sa dépendance JRE.
Note: Après installation, l'environnement Java aura besoin d'être reconnu par le shell (variable $PATH). Cela peut être fait à partir de la ligne de commande (source /etc/profile) et, pour les environnements de bureau, par une probable déconnexion/reconnexion.

Deux paquets communs nommés java-runtime-common et java-environment-common sont automatiquement installés en dépendances. Le paquet java-runtime-common fournit le fichier d'environnement /etc/profile.d/jre.sh, qui contient toutes les variables d'environnement communes aux JVM, ainsi qu'un script utilitaire, archlinux-java, permettant d'afficher et de modifier l'environnement Java par défaut. Ce script définit le lien /usr/lib/jvm/java-default-exécution pour pointer vers un environnement Java valable installé dans /var/lib/jvm/java-${}JAVA_MAJOR_VERSION-${}VENDOR_NAME. La plupart des exécutables fournis par l'environnement Java ont des liens directs à partir de /usr/bin, d'autres sont disponibles dans $PATH.

Attention: Le fichier /etc/profile.d/jdk.sh n'est plus fourni par aucun paquet.
Important: si vous utilisez un gestionnaire de fenêtres de type "non-reparenting" (awesome, dwm, plwm, ratpoison, xmonad ou compiz), vous devrez rajouter la ligne adéquate dans /etc/profile.d/jre.sh ou dans votre ~/.xinitrc selon comment vous démarrez votre session graphique (n'oubliez pas de faire un source de ce fichier pour votre session en cours):
export _JAVA_AWT_WM_NONREPARENTING=1

Basculer entre les JVMs

L'assistant archlinux-java fournit les fonctionnalités suivantes:

archlinux-java <COMMAND>                                                                                       
                                                                                                               
COMMAND:                                                                                                       
        status          List installed Java environments and enabled one                                       
        get             Return the short name of the Java environment set as default                           
        set <JAVA_ENV>  Force <JAVA_ENV> as default                                                            
        unset           Unset current default Java environment                                                 
        fix             Fix an invalid/broken default Java environment configuration

Liste des environnements Java installés et compatibles

Elle s'obtient avec:

archlinux-java status

Par exemple:

$ archlinux-java status
Available Java environments:
  java-7-openjdk (default)
  java-8-openjdk/jre

Remarquez le (default) indiquant que java-7-openjdk est ici utilisé par défaut. L'invocation de java et autres binaires se fondera sur cette installation de Java. À noter également sur la sortie précédente que seule la partie JRE de OpenJDK 8 est installée ici.

Modifier l'environnement Java par défaut

Cela est réalisable via:

archlinux-java set <JAVA_ENV_NAME>
Important: Cette commande doit être lancée en root.

Par exemple:

archlinux-java set java-8-openjdk/jre
Note: archlinux-java ne vous laissera pas définir un environnement Java non valide. Dans l'exemple précédent, jre8-openjdk est installé mais jdk8-openjdk ne l'est pas. Ainsi, tenter de passer sur java-8-openjdk échouera:
# archlinux-java set java-8-openjdk
'/usr/lib/jvm/java-8-openjdk' is not a valid Java environment path

Décharger l'environnement Java par défaut

Cette opération n'est pas nécessaire dans la mesure où les paquets s'occupent de cela. Toutefois, si vous voulez le faire, il suffit d'utiliser la commande unset:

archlinux-java unset

Plugin pour Firefox

Pour bénéficier des fonctionnalités de Java pour votre navigateur Firefox, il vous faudra installer icedtea-web.

Note: Si vous utilisez le Java d'Oracle disponible sur AUR, le plugin est inclu.
Note: si vous rencontrez des problèmes avec le plugin Java, vous pouvez essayer la solution suggérée pour le plugin Flash sous Firefox: Plugins navigateur