Skip to content

La plateforme Java

Dans l’environnement Java, trois (3) étapes son nécessaires pour la création d’un programme exécutable valide, l’écriture, la compilation et l’exécution.

Écrire un programme Java

Pour écrire un programme les développeurs créer ce qu’on appelle du code source. Ce code source est constitué d’un assemblage de texte enregistrer dans un ou plusieurs fichiers et qui contiennent les instructions nécessaires à la bonne exécution d’un programme. Ces instructions doivent respecter la syntaxe du langage choisi et être facilement lisible pour les humains.

À titre de programmeur Java, vous écrirez du code dans un simple fichier texte portant l’extension .java.

Un programme consiste en plusieurs de ces fichiers.

   

Compiler un programme Java

Quand l’écriture d’un programme est terminée, nous devons trouver une façon de le faire fonctionner sur un ordinateur. Cependant, un problème se pose, un ordinateur ne comprends pas le code source.

Heureusement, nous avons un outil disponible, un programme spécial appeler compilateur. Ce compilateur transforme le code source en format compréhensible par un ordinateur. Ce format, ce code, s’appelle de code de bas niveau (low level code) ou code natif (native code).

Il y a plusieurs types d’ordinateur disponible sur le marché : téléphone mobile, ordinateur personnel, ordinateur portable, serveurs, objets connectés, etc. Cette diversité cause un problème car chaque type d’ordinateur fonctionne avec un code natif différent ! Un peu comme les gens sur notre planète, ils parlent plusieurs langues distinctives.

Il y cependant, une solution à ce problème dans le monde de Java; le compilateur (javac) compile le code source en une représentation intermédiaire connu sous le nom de code octet (Java bytecode, bytecode). Ce code octet est enregistré dans un fichier portant l’extension ‘.class’.

Ce bytecode ne peut pas être exécuté directement sur un ordinateur mais seulement sur un ordinateur spécial, un ordinateur abstrait appeler Java Virtual Machine ou JVM pour les intimes.

   

Exécuter un programme Java

Avant de pouvoir exécuter un programme Java sur un ordinateur, une JVM doit être disponible. Il suffit de télécharger et d’installer la plus récente version de la JVM est disponible ici.

Chaque système d’exploitation possède sa propre version de la JVM et chaque version d’une JVM peut exécuter le même code octet (bytecode) indépendamment du système d’exploitation.

Cette particularité permet au même code octet d’être exécuté sur plusieurs plateformes différentes à condition qu’une JVM soit disponible. On dit des langages basés sur une JVM que ce sont des langages indépendants de plateforme (platform independant).

Pour exécuter un programme Java, nous utiliserons l’outil java. Pour démarrer l’exécution d’un fichier portant l’extension .class, il suffit de taper java monfichier.class.

   

Vue générale

L'image suivante démontre le processus simplifié d'écrire, de compiler et d'exécuter un programme Java.

Vue générale

Un développeur Java écrit un programme dans un (ou plusieurs) fichier texte portant l'extension .java. Ensuite, le compilateur (javac) traduit ces instructions en code octet et les enregistre dans un fichier ayant l'extension .class. Finalement, une JVM est instanciée (démarrée) et exécute le code octet afin de donner des instructions natives à l'ordinateur.

Il est à noter que nous utilisons ici le terme ordinateur mais il s'agit en fait de n'importe quel appareil (pc, téléphone, réfrigérateur, automobile, etc.) disposant d'une JVM.

 

JVM, JRE et JDK

Il est facile de mélanger les termes associés à l'écosystème Java. Les abréviations sont chose commune dans le monde informatique et bien les maîtriser vous rend plus familier avec la plateforme Java.

 

Java Virtual Machine, Machine Virtuelle Java, JVM

Une machine virtuelle est une simulation d'un ordinateur physique. Dans le cas qui nous intéresse, elle exécute des instructions en bytecode (code octet) pour les transformer en code natif.

La JVM doit correspondre à des spécifications bien précises. La JVM est disponible sous plusieurs plateformes autant matérielles (x86, ARM, etc.) que logicielles (Linux, Windows, MacOS, etc.) mais comme elles répondent toutes aux mêmes spécifications, les machines virtuelles se comportent de façon identique.

Il existe plusieurs implémentations différentes de JVM.

JVM

 

Java Runtime Environment, Environnement d'exécution Java, JRE

Le JRE est un environnement conçu pour exécuter des programmes Java compilés.

Le JRE inclut la JVM ainsi que les Java Class Library (JCL).

La JCL est une bibliothèque standard du langage Java, qui contient un ensemble de bibliothèques logicielles chargées dynamiquement.

Elle fournit aux programmeurs un ensemble de fonctions bien connues telles que la gestion des entrées/sorties, les collections, la sécurité, etc. Vos programmes peuvent (et doivent) utiliser ces bibliothèques de fonctions. Quand un programme compilé s'exécute dans un JRE, la JVM utilise du code octet de votre application mais aussi du JCL !

 

Java Development Kit, Kit de développement Java, JDK

Le JDK est utilisé pour développer des programmes sur la plateforme Java. Il inclut un JRE et plusieurs outils de développement comme des débugger, compilateur, archiveur etc.

 

Relations entre JRE, JVM et JDK

L'illustration suivante représente les relations entre le JRE, la JVM et le JDK.

Relations entre JRE, JVM et JDK