Machine virtuelle Java

Un article de Wikipédia, l'encyclopédie libre.

La Java Virtual Machine (abrégé JVM, en français Machine virtuelle Java) est une machine virtuelle permettant d'interpréter et d'exécuter le bytecode Java.

Architecture générale : illustration de l'adage Compile once, run everywhere
Architecture générale : illustration de l'adage Compile once, run everywhere

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.

La machine virtuelle la plus utilisée est celle de Sun Microsystems. Elle est gratuite, propriétaire jusqu'à la version 6 (stable) et libre à partir de la version 7 (non encore officielle).

Le 11 novembre 2006, Sun Microsystems a publié les sources de sa machine virtuelle HotSpot et de son compilateur javac sous licence Open Source GPL.

Les machines virtuelles développées par les autres éditeurs peuvent poser parfois des problèmes de compatibilité selon leur conformité aux spécifications fournies par Sun. De plus, il est rare qu'elles soient à jour par rapport aux dernières version de Sun.

  • Celle de Microsoft était fournie avec le système d'exploitation Windows. Mais Sun s'est defendu de cette machine virtuelle qu'ils distribuaient, Sun pensait que la machine pouvait être "bugguée" volontairement pour contrer l'avancée du langage java (compatibilité sur OS = risque de perte pour microsoft). Suite à un procès gagné par Sun , elle ne l'est plus.
  • Apple en a créé une pour son Mac OS.
  • Celle d'IBM semble être une bonne alternative à celle de Sun, elle est disponible pour les plateformes AIX, z/OS, GNU/Linux et Windows. Elle est souvent utilisée avec l'EDI Eclipse.
  • Il existe aussi des machines virtuelles sous licence GPL ou LGPL comme Kaffe ou SableVM. Le projet GNU inclut par ailleurs un "sous-projet" de machine virtuelle Java nommé GNU Classpath.

[modifier] Liens externes

Java (Sun)
Les principales technologies: le langage java | la plateforme Java | le JDK | la machine virtuelle Java (JVM) | l'environnement d'exécution Java (JRE)
L'historique: Historique des versions de Java | Critiques de Java | Java Community Process | Sun Microsystems
Les caractéristiques du langage : le bytecode | les applets | les servlets | JavaServer Pages