Le langage de programmation JAVA
3
compilateur
, qui produit une version langage machine du programme
appelée
image exécutable
. Malheureusement, les processeurs possè-
dent chacun leur propre langage machine. Ainsi, l’image exécutable
produite sur la station de travail IBM ne pourra tourner sur aucun des
autres ordinateurs du réseau présenté précédemment. Pour qu’un pro-
gramme puisse tourner sur chacun de ces ordinateurs, il faudrait que le
programmeur le compile séparément sur chacune de ces machines.
Pour résoudre ce problème, Java propose pour chaque système infor-
matique non seulement un compilateur, mais également un système
logiciel appelé
Java Virtual Machine
(JVM ou machine virtuelle Java).
Le compilateur Java, appelé javac, convertit le code source Java en un
langage de niveau intermédiaire, appelé
bytecodes
. Les bytecodes,
comme le code source lui-même, sont indépendants du type d’ordina-
teur. Tous les ordinateurs utilisent le même fichier bytecode. Lorsqu’un
ordinateur souhaite exécuter un programme Java écrit sur un autre
ordinateur, il télécharge le fichier bytecode du programme et le trans-
met à sa propre JVM. La JVM traduit les bytecodes dans le langage
machine de son propre système et exécute la version convertie.
Le schéma ci-après présente à nouveau le réseau de l’exemple précé-
dent. Trois fichiers apparaissent cette fois sur l’ordinateur IBM : un
fichier de code source Java appelé
Hi.java
, le compilateur java et le
fichier bytecode
Hi.class
. Le compilateur a produit ce fichier
bytecode lorsque le programmeur a exécuté la commande
javac
Hi.class
sur l’ordinateur IBM. Par la suite, un utilisateur de l’ordina-
teur Sony (à droite) a cliqué sur une page web qui contenait des ins-
tructions pour exécuter
Hi.class
. Automatiquement, la machine Sony
a téléchargé le bytecode
Hi.class
et l’a fait tourner sur sa propre JVM
locale. La JVM de l’ordinateur Sony sait comment traduire le
bytecode dans le langage machine du processeur afin que ce dernier
puisse l’exécuter. Tout le travail préalablement effectué sur l’ordina-
teur IBM est entièrement indépendant de celui réalisé sur l’ordinateur
Sony. En fait, le fichier
Hi.class
aurait pu avoir été produit bien avant
que l’ordinateur Sony ou son processeur n’aient même été inventés.
La plupart des navigateurs web (Netscape Communicator, Internet
Explorer) intègrent JVM. Lorsque vous chargez une page web qui
contient des instructions pour exécuter un programme Java, le navi-
gateur télécharge automatiquement le bytecode et lance la JVM.
HUBBARD-chaps Page 3 Mardi, 27. juin 2006 12:08 12