Dark Mode

Aller au contenu

Environnement d'execution Java

Un article de Wikipedia, l'encyclopedie libre.

Pour les articles homonymes, voir JRE.

Ne doit pas etre confondu avec Java SE.

Positionnement du JRE dans Java SE.

L'environnement d'execution Java (abr. JRE pour Java Runtime Environment), parfois nomme simplement << Java >>, est une famille de logiciels qui permet l'execution des programmes ecrits en langage de programmation Java[1], sur differentes plateformes informatiques.

Il est distribue gratuitement par Oracle Corporation, sous forme de differentes versions destinees aux systemes d'exploitation Windows, Mac OS X et Linux[2], toutes conformes aux Java Specification Requests (JSR).

JRE est souvent considere comme une plateforme informatique au meme titre qu'un systeme d'exploitation (OS). En effet, s'il n'est pas un OS, il offre les memes fonctionnalites par l'intermediaire de ses bibliotheques[3] et permet ainsi l'execution des programmes ecrits en langage Java sur de nombreux types d'appareils -- ordinateurs personnels, mainframes, telephones mobiles -- en faisant abstraction des caracteristiques techniques de la plateforme informatique sous-jacente qui execute le JRE[4].

JRE est un logiciel populaire, installe sur plus de 900 millions d'ordinateurs[5].

Architecture

[modifier | modifier le code]

Le JRE se compose d'une machine virtuelle, de bibliotheques logicielles utilisees par les programmes Java et d'un plugin pour permettre l'execution de ces programmes depuis les navigateurs web[1].

Selon les principes de la technologie Java, lancee par Sun Microsystems en 1995, JRE simule la presence de la machine virtuelle java - un ordinateur fictif. Il joue le role d'un emulateur et imite le comportement de cette machine fictive qui execute des programmes Java[4].

Android, la plateforme pour les telephones mobiles creee par Google, comporte une machine virtuelle et une bibliotheque logicielle similaire a JRE[6], qui est incorporee dans les appareils par les fabricants[2].

La machine virtuelle

[modifier | modifier le code]
Article detaille : machine virtuelle Java.

La machine virtuelle Java (abr. JVM pour Java Virtual Machine) est une simulation logicielle d'une veritable machine[7]. La principale tache de la machine virtuelle est de charger en memoire les fichiers executables et d'executer le bytecode -- les instructions machine de la machine virtuelle. Il existe plusieurs modes d'execution du bytecode[8].

Modes d'execution du bytecode

[modifier | modifier le code]
  • Dans le mode le plus simple -- interpretation --, la machine virtuelle interprete le bytecode : decode une instruction de bytecode a la fois et execute l'operation correspondante[8].
  • Le mode HotSpot de la machine virtuelle traduit les instructions depuis du bytecode vers le langage machine de la machine qui execute le JRE ; ensuite de quoi les instructions traduites sont executes. Les instructions traduites sont conservees en vue de limiter le nombre d'operations de traduction. Dans ce mode, l'execution des programmes Java est plus rapide mais necessite une plus grande quantite de memoire[8].
  • Dans le mode adaptive compiler, la machine virtuelle traduit uniquement les instructions frequemment executees, utilisant alternativement les techniques de l'interpretation ou de HotSpot selon les besoins[8].

La machine virtuelle est egalement equipee d'un ramasse-miettes (en anglais : garbage collector) qui permet de liberer la memoire qui n'est plus utilisee par le programme Java[8].

Bibliotheques

[modifier | modifier le code]
Article detaille : API Java.

Les bibliotheques logicielles de JRE mettent en oeuvre une interface de programmation (anglais application programming interface - abr. API). C'est un ensemble standardise de fonctions, associees a des classes d'objets et groupees par sujet (package)[9]. Dans son edition de 2002, JRE comporte 135 packages qui fournissent des fonctionnalites exploitees par les programmes Java pour[10] :

Depuis 1998 il existe plusieurs choix de bibliotheques, plus ou moins riches. Les bibliotheques comprises dans JRE correspondent a l'edition standard appelee Java SE[11], qui est destinee aux ordinateurs personnels. Il existe egalement une edition Java ME destinee aux telephones mobiles, et une edition Java EE destinee aux serveurs d'entreprise[3].

Java Plug-In est un module d'extension pour les navigateurs web, qui permet l'execution des applets a l'aide de la machine virtuelle de JRE. Les applets sont des programmes incorpores dans les pages web en vue d'enrichir leur contenu[10].

Lorsqu'une page web comporte un lien vers une applet, le plugin fait appel a la machine virtuelle de JRE pour executer le programme en question. Les navigateurs tels que Internet Explorer ou Netscape Navigator comportent une machine virtuelle incorporee, mais celle-ci est moins en avance et n'offre pas les memes possibilites que celle de JRE. Java Plug-In permet alors d'eviter d'utiliser la machine virtuelle incorporee dans le navigateur[10],[12].

Autres packages Java

[modifier | modifier le code]

Le JRE ne constitue qu'un environnement d'execution de logiciels ecrits prealablement en langage de programmation Java.

L'ecriture de tels logiciels necessite quant a elle l'utilisation d'un JDK (Java Development Kit), egalement distribue par Oracle Corporation. Ainsi, alors que JRE est destine aux utilisateurs des programmes en langage Java, JDK est destine aux programmeurs : il comporte en plus de la machine virtuelle et des bibliotheques, des commandes permettant la creation de programmes en langage Java[3]. Ce meme JDK est package dans diverses distributions, contenant des API complementaires destinees a differents contextes de mise en oeuvre : Java SE, Java EE, Java ME, etc.

La technologie Java a ete lancee en 1995, et Sun Microsystems a publie une edition tous les 18 mois. Dans la premiere version de JRE, publiee en 1995, les bibliotheques totalisent 171 classes d'objets. Dans la version 1.4, publiee en 2002, elles totalisent deja 2 367 classes d'objets[3].

En 2010 la societe Sun Microsystems, qui distribue JRE, est rachetee par Oracle Corporation, qui annonce son intention de continuer de developper la technologie Java[13],[14]

annee 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[15]) 2 800 (pour 166 packages)
2006 Java 6 JRE 1.6.0 (2013: 1.6.0.45) 3 793[16] (pour 203 packages)
2011 Java 7 JRE 1.7.0 (2013: 1.7.0.45) 4 024[17] (6 nouveaux packages: java.lang.invoke, java.nio.file (+file.attribute & file.spi), javax.swing.plaf.nimbus & javax.xml.ws.spi.http)

Versions et systemes supportes

[modifier | modifier le code]

Les versions du JRE sont numerotees a l'identique aux versions de Java ; on recense donc fin 2012 plus de 50 versions successives du JRE dont 7 majeures. La derniere version pour OS X, Linux, Windows et Solaris est ainsi la 1.7.0.45 (egalement intitulee '7 Update 45') en , distribuee par leur proprietaire Oracle (a la suite du rachat de l'editeur Sun Microsystems en 2009).

Si Java se decline en plusieurs editions (Java SE, Java EE, Java ME, Java FX), le JRE correspond a l'edition standard 'Java SE'. De ce fait, executer sur un poste client un logiciel ecrit sous Java EE necessite, outre le JRE, que les bibliotheques J2EE complementaires requises soient fournies par un conteneur Java, 'lourd' tel que Apache Tomcat, JBoss ou JOnAS, ou 'leger' tel que Spring.

Par ailleurs, le JRE ayant vocation a 'traduire' le bytecode Java en langage machine, il existe a 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[18].

Particularites sur Mac OS X

[modifier | modifier le code]
  • Il n'existe plus, depuis Java 1.5, de release du JRE pour les ordinateurs Mac OS X sous processeur Motorola.
  • Les releases 1.6 de Java (Java 6) pour Mac OS X sous processeur Intel, et la plupart de Java 7, furent integrees a cet OS, et donc distribuees specifiquement par Apple. Ce jusqu'en ou Apple 'rentre dans le rang' en annoncant prevoir de ne plus integrer les prochains runtimes Java dans OS X[19].
  • C'est ainsi en 2012, a partir de la release 2012-006 de Mac OS X v10.7, que la distribution Mac OS X du JRE retourne dans le giron de Oracle[20],[21].

Notes et references

[modifier | modifier le code]
  1. | a et b (en) << What is Java technology and why do I need it? >>
  2. | a et b (en) << java.com - What are the system requirements for Java 7? >>
  3. | a b c et d Emmanuel Puybaret,Java 1.4 et 5.0 - Les Cahiers du programmeur,Editions Eyrolles - 2006, (ISBN 9782212119169)
  4. | a et b (en) Doug Lowe et Barry Burd, Java All-In-One Desk Reference For Dummies,John Wiley & Sons - 2007, (ISBN 9780470124512)
  5. | (en) << java.com - Learn about Java Technology >>.
  6. | (en) Jeff Friesen, Learn Java for Android Development, Apress - 2010 (ISBN 9781430231561).
  7. | (en) Linda Null et Julia Lobur,The Essentials of Computer Organization And Architecture,Jones & Bartlett Learning - 2006, (ISBN 9780763737696)
  8. | a b c d et e (en) Buyya, Object Oriented Prog With Java, Tata McGraw-Hill Education - 2009 (ISBN 9780070669086).
  9. | (en) Gary B. Shelly, Thomas J. Cashman, Michael Mick et Joy L. Starks, Java Programming: Comprehensive Concepts And Techniques, Cengage Learning - 2005 (ISBN 9781418859855).
  10. | a b c d et e Benjamin Aumaille,J2SE : les fondamentaux de la programmation Java, Editions ENI - 2002 (ISBN 9782746018044).
  11. | (en) Dominik Gruntz et Stephan Murer, Component Software: Beyond Object-Oriented Programming, Pearson Education - 2002 (ISBN 9780201745726).
  12. | (en) David Flanagan,Java Foundation Classes in a Nutshell: A Desktop Quick Reference,O'Reilly Media Inc. - 1999, (ISBN 9781565924888)
  13. | (en) << Oracle - Hardware and Software. Engineered to Work Together. >>.
  14. | (en) Barry Burd,Java For Dummies,John Wiley & Sons - 2011, (ISBN 9781118128305)
  15. | http://www.oracle.com/technetwork/java/javase/7u17-relnotes-1915289.html
  16. | Overview Java Platform SE6
  17. | Overview Java Platform SE7
  18. | Telechargements Java pour tous les systemes d'exploitation www.java.com
  19. | Mac OS X Java Deprecation developer.apple.com 20 octobre 2010.
  20. | Oracle met a jour Java SE et JavaFX pour OS X, Le Monde Informatique - 16 aout 2012.
  21. | (en) About Java for OS X 2012-006, http://support.apple.com.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]