Java

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Java and the translation is 45% complete.
Outdated translations are marked like this.

Java est un langage de programmation originellement développé par Sun Microsystems]] qui utilise un runtime pour permettre aux applications développées en java de fonctionner sur différentes platformes. C'est un choix populaire pour les développeurs qui veulent créer des application multi-platforme..

Qu'est-ce que Java ?

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 gestion automatique de la mémoire. 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, appelé JVM (Java Virtual Machine) 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, entre autre, les bibliothèques standard, une machine virtuelle Java dépendante de la plateforme et des modules d'extension 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.

= Langages de la JVM

La machine virtuelle java n'est pas utilisée exclusivement par le langage de programmation java. Plusieurs autre langages se servent de la JVM. Par exemple nous avons Clojure, Apache Groovy, Kotlin ou Scala.

Installer une machine virtuelle

Les choix possibles

Gentoo procure de nombreux environnement d'exécution Java (JREs) et kits de développement Java (JDKs). Les choix courants comprennent :

Vendeur JDK
Le IcedTea Open Java SE (formerly icedtea6-bin) dev-java/icedtea et dev-java/icedtea-bin
OpenJDK dev-java/openjdk et dev-java/openjdk-bin
Eclipse Temurin dev-java/openjdk-jre-bin

Installer un JRE/JDK

Pour installer le "JDK" par défaut du profile, exécuter :

root #emerge --ask virtual/jdk

Pour installer le "JRE" par défaut du profile, exécuter :

root #emerge --ask virtual/jre
Remarque
Soyez conscient qu'un JDK comprend aussi un JRE, c'est pourquoi il n'est pas nécessaire d'installer un JRE si un JDK a déjà été installé.

Setting up a headless JRE

Sometimes there is no need for a full JRE with all the capabilities of java. Using java on a server often does not require any GUI, graphical, sound or even printer related features. To install a simplified (sometimes also referred to as headless) JRE, a few USE flags need to be changed for the selected JRE flavor.

FILE /etc/portage/package.useRequired USE flag changes
dev-java/icedtea headless-awt -alsa -cups
dev-java/icedtea-bin headless-awt -alsa -cups
dev-java/openjdk headless-awt -alsa -cups
dev-java/openjdk-bin headless-awt -alsa -cups

Depending on the current Gentoo profile, this might already be the case. As usual, the USE flag settings that are applicable to a particular package can be checked by running emerge in pretend mode:

user $emerge --pretend --verbose virtual/jre

Configurer la machine virtuelle Java

Vue d'ensemble

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

Définir une machine virtuelle par défaut

En exécutant la commande java-config --list-available-vms vous obtiendrez une liste de tous les JREs et JDKs installés sur votre système. Voici un exemple de sortie de cette commande :

root #java-config --list-available-vms
The following VMs are available for generation-2:
1)      IcedTea JDK 7.2.6.3 [icedtea-7]
*)      IcedTea JDK 3.0.1 [icedtea-8]

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 java-config --set-system-vm. Voici un exemple de comment définir la machine virtuelle système.

root #java-config --set-system-vm icedtea-7
Now using icedtea-7 as your generation-2 system JVM

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

root #java-config --set-system-vm 3
Now using icedtea-7 as your generation-2 system JVM
Remarque
Il n'est plus nécessaire de sourcer le profil pour que la mise à jour de la machine virtuelle utilisateur/système prenne effet .

Modules d'extension Java pour les navigateurs

Important
The Java plugin support had been deprecated in JDK 9[1].
Remarque
Note that Chromium-based browsers since version 42 and Firefox since version 52 no longer support NPAPI-based plugins[2]. This effectively disables the Java plugin on modern browsers.

For those who need a Java-enabled browser for a specific use case, there is e.g. palemoon/palemoon-bin available in the palemoon overlay, which has long-term support for NPAPI and thus Java plugins up to JDK 8[3].

Options de la variable USE à utiliser avec Java

Configurer les options de la variable USE

Pour plus d'information à propos des options de la variable USE, reportez-vous à la page sur la variable USE

Les options

  • L'option java ajoute la prise en charge de Java dans de nombreux programmes.
  • L'option nsplugin ajoute la prise en charge de Java par les navigateurs basé sur Mozilla (y compris Firefox). Vous en aurez besoin pour voir les applets Java dans le navigateur.
  • L'option source installe une archive zip du code source d'un paquet. Ceci est traditionnellement utilisé par les environnements de développement (IDE) pour attacher les sources aux bibliothèques que vous utilisez.
  • L'option jce ajoute la prise en charge du moteur de cryptographie Java.
  • Pour les paquets Java, l'option doc construira une documentation de l'interface de programmation d'application (API) en utilisant javadoc.

Following USE flags go in JAVA_PKG_IUSE, see Gentoo Java USE flags for details and other specific USE flags of Java:

  • 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 that are being use;
  • For Java packages, the doc flag will build API documentation using javadoc.

Troubleshooting

Minecraft launcher errors

  • A specific error in which minecraft-launcher crashed after a few seconds, throwing "Alarm" and "SaveToBuffer failed" error was solved by setting the USE flag threads for net-misc/curl.
  • When executing minecraft-launcher the following error was produced:
user $./minecraft-launcher
[0229/184549.183275:ERROR:sandbox_linux.cc(346)] InitializeSandbox() called with multiple threads in process gpu-process.

This was solved by executing minecraft-launcher with the following option:

user $MESA_GLSL_CACHE_DISABLE=true ./minecraft-launcher

Voir aussi

Ressources externes

  • java-config man page
  • java-config --help
  • man java-config
  • java-config --help

For suggestions or questions regarding this document, please email the Gentoo Java team: java@gentoo.org

Références

  1. JDK 9 and the Java Plugin, java.com. Retrieved on November 30, 2018
  2. How do I enable Java in my web browser?, java.com. Retrieved on November 30, 2018
  3. Pale Moon future roadmap, palemoon.org. Retrieved on June 28, 2019

This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Joshua Nichols, Karl Trygve Kalleberg, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.