Environnement d'exécution Java

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}

Modèle:Voir homonymes Modèle:Confusion

Fichier:JavaSE Software Architecture.PNG
Positionnement du JRE dans Java SE.

L'environnement d'exécution Java (abr. JRE pour Modèle:Langue), parfois nommé simplement « Java », est une famille de logiciels qui permet l'exécution des programmes écrits en langage de programmation Java<ref name="whatis">Modèle:Lien web</ref>, sur différentes plateformes informatiques.

Il est distribué gratuitement par Oracle Corporation, sous forme de différentes versions destinées aux systèmes d'exploitation Windows, Mac OS X et Linux<ref name="required">Modèle:Lien web</ref>, toutes conformes aux Java Specification Requests (JSR).

JRE est souvent considéré comme une plateforme informatique au même titre qu'un système d'exploitation (OS). En effet, s'il n'est pas un OS, il offre les mêmes fonctionnalités par l'intermédiaire de ses bibliothèques<ref name="puybaret">Emmanuel Puybaret,Java 1.4 et 5.0 - Les Cahiers du programmeur,Editions Eyrolles - 2006,Modèle:ISBN</ref> et permet ainsi l'exécution des programmes écrits en langage Java sur de nombreux types d'appareils — ordinateurs personnels, [[Ordinateur central|Modèle:Langue]], téléphones mobiles — en faisant abstraction des caractéristiques techniques de la plateforme informatique sous-jacente qui exécute le JRE<ref name="all-in-one" />.

JRE est un logiciel populaire, installé sur plus de 900 millions d'ordinateurs<ref>Modèle:Lien web.</ref>.

Architecture

Le JRE se compose d'une machine virtuelle, de bibliothèques logicielles utilisées par les programmes Java et d'un plugin pour permettre l'exécution de ces programmes depuis les navigateurs web<ref name="whatis" />.

Selon les principes de la technologie Java, lancée par Sun Microsystems en 1995, JRE simule la présence de la machine virtuelle java - un ordinateur fictif. Il joue le rôle d'un émulateur et imite le comportement de cette machine fictive qui exécute des programmes Java<ref name="all-in-one">{{#invoke:Langue|indicationDeLangue}} Doug Lowe et Barry Burd, Java All-In-One Desk Reference For Dummies,John Wiley & Sons - 2007,Modèle:ISBN</ref>.

Android, la plateforme pour les téléphones mobiles créée par Google, comporte une machine virtuelle et une bibliothèque logicielle similaire à JRE<ref>{{#invoke:Langue|indicationDeLangue}} Jeff Friesen, Modèle:Langue, Apress - 2010 Modèle:ISBN.</ref>, qui est incorporée dans les appareils par les fabricants<ref name="required" />.

La machine virtuelle

Modèle:Article détaillé La machine virtuelle Java (abr. JVM pour Java Virtual Machine) est une simulation logicielle d'une véritable machine<ref>{{#invoke:Langue|indicationDeLangue}}Linda Null et Julia Lobur,The Essentials of Computer Organization And Architecture,Jones & Bartlett Learning - 2006,Modèle:ISBN</ref>. La principale tâche de la machine virtuelle est de charger en mémoire les fichiers exécutables et d'exécuter le bytecode — les instructions machine de la machine virtuelle. Il existe plusieurs modes d'exécution du bytecode<ref name="buyya">{{#invoke:Langue|indicationDeLangue}} Buyya, Modèle:Langue, Modèle:Langue - 2009 Modèle:ISBN.</ref>.

Modes d'exécution du bytecode

  • Dans le mode le plus simple — interprétation —, la machine virtuelle interprète le bytecode : décode une instruction de bytecode à la fois et exécute l'operation correspondante<ref name="buyya" />.
  • Le mode Modèle:Langue de la machine virtuelle traduit les instructions depuis du bytecode vers le langage machine de la machine qui exécute le JRE ; ensuite de quoi les instructions traduites sont exécutés. Les instructions traduites sont conservées en vue de limiter le nombre d'opérations de traduction. Dans ce mode, l'exécution des programmes Java est plus rapide mais nécessite une plus grande quantité de mémoire<ref name="buyya" />.
  • Dans le mode Modèle:Langue, la machine virtuelle traduit uniquement les instructions fréquemment exécutées, utilisant alternativement les techniques de l’interprétation ou de HotSpot selon les besoins<ref name="buyya" />.

La machine virtuelle est également équipée d'un ramasse-miettes (Modèle:En anglais) qui permet de libérer la mémoire qui n'est plus utilisée par le programme Java<ref name="buyya" />.

Bibliothèques

Modèle:Article détaillé Les bibliothèques logicielles de JRE mettent en œuvre une interface de programmation (anglais application programming interface - abr. API). C'est un ensemble standardisé de fonctions, associées à des classes d'objets et groupées par sujet (package)<ref>{{#invoke:Langue|indicationDeLangue}}Gary B. Shelly, Thomas J. Cashman, Michael Mick et Joy L. Starks, Modèle:Langue, Cengage Learning - 2005 Modèle:ISBN.</ref>. Dans son édition de 2002, JRE comporte 135 packages qui fournissent des fonctionnalités exploitées par les programmes Java pour<ref name="aumaille">Benjamin Aumaille,J2SE : les fondamentaux de la programmation Java, Éditions ENI - 2002 Modèle:ISBN.</ref> :

Depuis 1998 il existe plusieurs choix de bibliothèques, plus ou moins riches. Les bibliothèques comprises dans JRE correspondent à l'édition standard appelée Java SE<ref>{{#invoke:Langue|indicationDeLangue}}Dominik Gruntz et Stephan Murer, Modèle:Langue, Modèle:Langue - 2002 Modèle:ISBN.</ref>, qui est destinée aux ordinateurs personnels. Il existe également une édition Java ME destinée aux téléphones mobiles, et une édition Java EE destinée aux serveurs d'entreprise<ref name="puybaret" />.

Plugin

Java Plug-In est un module d'extension pour les navigateurs web, qui permet l'exécution des applets à l'aide de la machine virtuelle de JRE. Les applets sont des programmes incorporés dans les pages web en vue d'enrichir leur contenu<ref name="aumaille" />.

Lorsqu'une page web comporte un lien vers une applet, le plugin fait appel à la machine virtuelle de JRE pour exécuter le programme en question. Les navigateurs tels que Internet Explorer ou Netscape Navigator comportent une machine virtuelle incorporée, mais celle-ci est moins en avance et n'offre pas les mêmes possibilités que celle de JRE. Java Plug-In permet alors d'éviter d'utiliser la machine virtuelle incorporée dans le navigateur<ref name="aumaille" />,<ref>{{#invoke:Langue|indicationDeLangue}}David Flanagan,Java Foundation Classes in a Nutshell: A Desktop Quick Reference,O'Reilly Media Inc. - 1999,Modèle:ISBN</ref>.

Autres packages Java

Le JRE ne constitue qu'un environnement d'exécution de logiciels écrits préalablement en langage de programmation Java.

L'écriture de tels logiciels nécessite quant à elle l'utilisation d'un JDK (Java Development Kit), également distribué par Oracle Corporation. Ainsi, alors que JRE est destiné aux utilisateurs des programmes en langage Java, JDK est destiné aux programmeurs : il comporte en plus de la machine virtuelle et des bibliothèques, des commandes permettant la création de programmes en langage Java<ref name="puybaret" />. Ce même JDK est packagé dans diverses distributions, contenant des API complémentaires destinées à différents contextes de mise en œuvre : Java SE, Java EE, Java ME, etc.

Histoire

Modèle:Article détaillé La technologie Java a été lancée en 1995, et Sun Microsystems a publié une édition tous les 18 mois. Dans la première version de JRE, publiée en 1995, les bibliothèques totalisent 171 classes d'objets. Dans la version 1.4, publiée en 2002, elles totalisent déjà 2 367 classes d'objets<ref name="puybaret" />.

En 2010 la société Sun Microsystems, qui distribue JRE, est rachetée par Oracle Corporation, qui annonce son intention de continuer de développer la technologie Java<ref>Modèle:Lien web.</ref>,<ref>{{#invoke:Langue|indicationDeLangue}}Barry Burd,Java For Dummies,John Wiley & Sons - 2011,Modèle:ISBN</ref>

année nom version nombre de classes de l'API
1996 Java JRE 1.0 170
1997 Java JRE 1.1 391
1998 Java 2 JRE 1.2 1 462
2000 Java 2 JRE 1.3 1 732
2002 Java 2 JRE 1.4 2 367 (pour 54 packages)
2004 Java 2 JRE 1.5.0 ou 5.0 (2013 : 1.5.0.41<ref>http://www.oracle.com/technetwork/java/javase/7u17-relnotes-1915289.html</ref>) 2 800 (pour 166 packages)
2006 Java 6 JRE 1.6.0 (2013: 1.6.0.45) 3 793<ref>Overview Java Platform SE6</ref> (pour 203 packages)
2011 Java 7 JRE 1.7.0 (2013: 1.7.0.45) 4 024<ref>Overview Java Platform SE7</ref> (6 nouveaux packages: java.lang.invoke, java.nio.file (+file.attribute & file.spi), javax.swing.plaf.nimbus & javax.xml.ws.spi.http)

Versions et systèmes supportés

Les versions du JRE sont numérotées à l'identique aux versions de Java ; on recense donc fin 2012 plus de 50 versions successives du JRE dont 7 majeures. La dernière version pour OS X, Linux, Windows et Solaris est ainsi la 1.7.0.45 (également intitulée '7 Update 45') en Modèle:Date-, distribuée par leur propriétaire Oracle (à la suite du rachat de l'éditeur Sun Microsystems en 2009).

Si Java se décline en plusieurs éditions (Java SE, Java EE, Java ME, Java FX), le JRE correspond à l'édition standard 'Java SE'. De ce fait, exécuter sur un poste client un logiciel écrit sous Java EE nécessite, outre le JRE, que les bibliothèques J2EE complémentaires requises soient fournies par un conteneur Java, 'lourd' tel que Apache Tomcat, JBoss ou JOnAS, ou 'léger' tel que Spring.

Par ailleurs, le JRE ayant vocation à 'traduire' le bytecode Java en langage machine, il existe à chaque version autant de distributions du JRE que de plateformes cibles : OS X Motorola, OS X Intel, Linux 32 bits, Linux 64 bits, Windows 32 bits (x86), x64, Solaris Sparc, etc<ref>Téléchargements Java pour tous les systèmes d'exploitation www.java.com</ref>.

Particularités sur Mac OS X

Notes et références

Modèle:Références

Voir aussi

Articles connexes

Liens externes

Modèle:Palette Modèle:Portail

en:Java virtual machine#Java Runtime Environment