Chapitre2 : L’environnement de génération et d’exécution




                    MASTER PROFESSIONNEL
   NOUVELLES TECHNOLOGIES DES TELECOMMUNICATIONS ET RESEAUX
                            (N2TR)



                               Cours JAVA © FST
                   L’environnement de génération et d’exécution




Objectif :

Ce chapitre vous permettra d’identifier les principales caractéristiques du
langage JAVA et de comprendre le cycle de vie d’un code écrit en JAVA et son
mode d’exécution.




                                                                               1
Riadh BOUHOUCHI
Chapitre2 : L’environnement de génération et d’exécution




                                                        Sommaire
L’environnement de génération et d’exécution ..................................................................................... 1
Les principales caractéristiques majeures de Java sont : ........................................................................ 3
L’environnement de génération Java : .................................................................................................... 3
   Code source : ....................................................................................................................................... 4
   Compilateur : ....................................................................................................................................... 4
   Bytecode : ............................................................................................................................................ 4
   Environnement d'exécution Java : ...................................................................................................... 4
   La machine virtuelle : .......................................................................................................................... 4
Exemple :................................................................................................................................................. 5
Récapitulatif : .......................................................................................................................................... 5




                                                                                                                                                               2
Riadh BOUHOUCHI
Chapitre2 : L’environnement de génération et d’exécution


Avant d’entamer la partie génération et exécution nous allons présenter quelques
caractéristiques du langage JAVA.


Les principales caractéristiques du langage :




Les principales caractéristiques majeures
de Java sont :
       Simple : vu que langage Java ressemble au langage C et C++ donc presque tous les
        développeurs qui ont utilisé le langage C ou C++ ne trouveront pas de difficultés à
        passer vers Java.
       Orienté Objet : tout est orienté objet et de ce fait on peut utiliser et réutiliser les
        objets dans une application au cours du temps et selon le besoin, ce qui permet de
        développer des applications beaucoup plus rapidement et, plus facilement.
       Distribué : exécution des processus à distance en s’appuyant sur les protocoles
        TCP/IP, tels que FTP (transfert de fichier) et HTTP (liens hypertextes du WWW), ceci
        se fait avec la librairie de routines.
       Robuste : la vérification des bugs dans un programme lors de son cycle de
        développement comme par exemple écrire sur des espaces mémoire déjà alloués, ou
        d’altérer des données en mémoire.
       Sécurisé : Java étant prévu pour être utilisé en réseau, la sécurité a été prise en compte
        dès le début de la définition de ce langage : La technique d’authentification s’appuie
        sur des mécanismes de chiffrement à clé publique.
       Indépendant de l’architecture : le code généré par le compilateur Java peut être
        exécuté sur n’importe quel système sur lequel le runtime Java a été porté, il n’est pas
        dépendant d’un système d’exploitation particulier.
       Portable : le programme peut être porté d’un système à un autre.
       Interprété : L’interpréteur Java exécute le code compilé sur tout système sur lequel
        est disponible le runtime Java (Windows 95, Windows NT, Windows XP, Windows
        VISTA, MacOS, Solaris, etc.).
       Multithreadé : Un Thread est un flot d’instructions s’exécutant en concurrence avec
        d’autres threads dans un même processus, ceci permet de rendre une application
        interactive.



L’environnement de génération Java :
L’environnement de génération a pour rôle de transformer un code source Java en un bytecode(le
fichier « .class ») en utilisant un compilateur JAVA.




                                                                                                     3
Riadh BOUHOUCHI
Chapitre2 : L’environnement de génération et d’exécution


Code source :
Le code source est un ensemble d'instructions écrites dans un langage de programmation informatique
de haut niveau, compréhensible par un être humain entraîné, permettant d'obtenir un programme pour
un ordinateur.

Les systèmes d'exploitation ne peuvent pas exploiter directement le code source ; ils ne
peuvent que lancer des exécutables. Donc, le code source doit être :

      Transformé en code compréhensible par la machine à l’aide de l'opération de
       compilation,
      Ou exécuté tel quel par un interpréteur.


Compilateur :
Un compilateur est un langage de programmation qui permet de traduire le code source JAVA
en bytecode.


Bytecode :
Le bytecode Java est le résultat de la compilation d'un programme dont le code source est en
Java par le compilateur Java. Ce bytecode peut être exécuté sous de nombreux systèmes
d'exploitation par l'interpréteur Java ou la machine virtuelle Java.
Le bytecode est un code binaire, ce qui permet un traitement plus rapide que le code source
Java, et qui rassemble (compile) tous les codes dispersés dans différents fichiers lors de
l'écriture du programme.


Environnement d'exécution Java :
Les fichiers « .class » seront rassemblés pour être compilés par un compilateur à temps réel ou
interprétés par un interpréteur Java dans la machine virtuelle.
Une fois compilé le résultat pourra être exécuté sur le système d’exploitation désiré
(Windows, mac, etc. ...) et sur la plateforme désiré (pc, téléphone, etc. ...).


La machine virtuelle :
La Java virtual machine est une machine virtuelle permettant d’interpréter et d’exécuter le
bytecode Java.
Ce programme est spécifique à chaque plate-forme ou couple (machine/système
d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes
résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle
Java adéquate.




                                                                                                      4
Riadh BOUHOUCHI
Chapitre2 : L’environnement de génération et d’exécution



Exemple :

                                           Bytecode




                            Jvm SUN                     Jvm autre
                            PC Linux                   plateforme




                           PC avec Linux                   Autre




Récapitulatif :



             Code JAVA
                                 Librairies de class                         Les Fichiers class
                                                                                  réunies



            Compilateur

                               Bytecode JAVA chargé                Interpréteur         Compilateur
                                                                                        temps reelle
                                 localement ou en                     JAVA
                                                                                           JAVA
                                      réseaux
                                                                                  JVM




                                                                              Système et
              Bytecode                                                        plateforme




                                                                                                       5
Riadh BOUHOUCHI

JAVA Chapitre2

  • 1.
    Chapitre2 : L’environnementde génération et d’exécution MASTER PROFESSIONNEL NOUVELLES TECHNOLOGIES DES TELECOMMUNICATIONS ET RESEAUX (N2TR) Cours JAVA © FST L’environnement de génération et d’exécution Objectif : Ce chapitre vous permettra d’identifier les principales caractéristiques du langage JAVA et de comprendre le cycle de vie d’un code écrit en JAVA et son mode d’exécution. 1 Riadh BOUHOUCHI
  • 2.
    Chapitre2 : L’environnementde génération et d’exécution Sommaire L’environnement de génération et d’exécution ..................................................................................... 1 Les principales caractéristiques majeures de Java sont : ........................................................................ 3 L’environnement de génération Java : .................................................................................................... 3 Code source : ....................................................................................................................................... 4 Compilateur : ....................................................................................................................................... 4 Bytecode : ............................................................................................................................................ 4 Environnement d'exécution Java : ...................................................................................................... 4 La machine virtuelle : .......................................................................................................................... 4 Exemple :................................................................................................................................................. 5 Récapitulatif : .......................................................................................................................................... 5 2 Riadh BOUHOUCHI
  • 3.
    Chapitre2 : L’environnementde génération et d’exécution Avant d’entamer la partie génération et exécution nous allons présenter quelques caractéristiques du langage JAVA. Les principales caractéristiques du langage : Les principales caractéristiques majeures de Java sont :  Simple : vu que langage Java ressemble au langage C et C++ donc presque tous les développeurs qui ont utilisé le langage C ou C++ ne trouveront pas de difficultés à passer vers Java.  Orienté Objet : tout est orienté objet et de ce fait on peut utiliser et réutiliser les objets dans une application au cours du temps et selon le besoin, ce qui permet de développer des applications beaucoup plus rapidement et, plus facilement.  Distribué : exécution des processus à distance en s’appuyant sur les protocoles TCP/IP, tels que FTP (transfert de fichier) et HTTP (liens hypertextes du WWW), ceci se fait avec la librairie de routines.  Robuste : la vérification des bugs dans un programme lors de son cycle de développement comme par exemple écrire sur des espaces mémoire déjà alloués, ou d’altérer des données en mémoire.  Sécurisé : Java étant prévu pour être utilisé en réseau, la sécurité a été prise en compte dès le début de la définition de ce langage : La technique d’authentification s’appuie sur des mécanismes de chiffrement à clé publique.  Indépendant de l’architecture : le code généré par le compilateur Java peut être exécuté sur n’importe quel système sur lequel le runtime Java a été porté, il n’est pas dépendant d’un système d’exploitation particulier.  Portable : le programme peut être porté d’un système à un autre.  Interprété : L’interpréteur Java exécute le code compilé sur tout système sur lequel est disponible le runtime Java (Windows 95, Windows NT, Windows XP, Windows VISTA, MacOS, Solaris, etc.).  Multithreadé : Un Thread est un flot d’instructions s’exécutant en concurrence avec d’autres threads dans un même processus, ceci permet de rendre une application interactive. L’environnement de génération Java : L’environnement de génération a pour rôle de transformer un code source Java en un bytecode(le fichier « .class ») en utilisant un compilateur JAVA. 3 Riadh BOUHOUCHI
  • 4.
    Chapitre2 : L’environnementde génération et d’exécution Code source : Le code source est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain entraîné, permettant d'obtenir un programme pour un ordinateur. Les systèmes d'exploitation ne peuvent pas exploiter directement le code source ; ils ne peuvent que lancer des exécutables. Donc, le code source doit être :  Transformé en code compréhensible par la machine à l’aide de l'opération de compilation,  Ou exécuté tel quel par un interpréteur. Compilateur : Un compilateur est un langage de programmation qui permet de traduire le code source JAVA en bytecode. Bytecode : Le bytecode Java est le résultat de la compilation d'un programme dont le code source est en Java par le compilateur Java. Ce bytecode peut être exécuté sous de nombreux systèmes d'exploitation par l'interpréteur Java ou la machine virtuelle Java. Le bytecode est un code binaire, ce qui permet un traitement plus rapide que le code source Java, et qui rassemble (compile) tous les codes dispersés dans différents fichiers lors de l'écriture du programme. Environnement d'exécution Java : Les fichiers « .class » seront rassemblés pour être compilés par un compilateur à temps réel ou interprétés par un interpréteur Java dans la machine virtuelle. Une fois compilé le résultat pourra être exécuté sur le système d’exploitation désiré (Windows, mac, etc. ...) et sur la plateforme désiré (pc, téléphone, etc. ...). La machine virtuelle : La Java virtual machine est une machine virtuelle permettant d’interpréter et d’exécuter le bytecode Java. Ce programme est spécifique à chaque plate-forme ou couple (machine/système d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle Java adéquate. 4 Riadh BOUHOUCHI
  • 5.
    Chapitre2 : L’environnementde génération et d’exécution Exemple : Bytecode Jvm SUN Jvm autre PC Linux plateforme PC avec Linux Autre Récapitulatif : Code JAVA Librairies de class Les Fichiers class réunies Compilateur Bytecode JAVA chargé Interpréteur Compilateur temps reelle localement ou en JAVA JAVA réseaux JVM Système et Bytecode plateforme 5 Riadh BOUHOUCHI