2. 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
3. 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
4. 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
5. 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