Java Runtime Environment (JRE) est une couche logicielle qui s'exécute au-dessus du système d'exploitation d'un ordinateur, fournissant des services supplémentaires dont un programme Java spécifique a besoin pour s'exécuter. JRE est l'un des trois composants interdépendants qui forment un trio pour le développement et l'exécution d'applications Java. Les deux autres sont:
- Kit de développement Java (JDK): ensemble d'outils pour développer des applications Java. Les JDK sont choisis par les développeurs en fonction de la version et de l'édition Java, telles que Java Enterprise Edition. Quelle que soit la version ou l'édition, JDK inclut toujours un JRE compatible.
- Machine virtuelle Java (JVM): exécute des applications Java en direct. Chaque JRE comprend une JVM par défaut.
JRE combine le code Java créé à l'aide du JDK avec les bibliothèques requises pour l'exécuter sur une JVM. Ensuite, une instance est créée de la JVM qui exécute le programme résultant.
JRE fournit de nombreuses bibliothèques d'intégration telles que Java IDL, Java Database Connectivity et Java Naming and Directory Interface pour aider les développeurs à créer des connexions de données transparentes entre les applications et les services. JRE comprend également des packages qui sont fondamentaux pour la conception d'applications. Certains packages incluent un framework de collections, des utilitaires de concurrence, une API de préférences et Java Archive.
Fonctionnement de l'environnement d'exécution Java
Pour créer un environnement d'exécution, JDK et JRE interagissent pour permettre une exécution fluide des applications Java dans n'importe quel système d'exploitation. Les processus suivants ont lieu au moment de l'exécution:
ClassLoader
Le Java ClassLoader charge dynamiquement toutes les classes nécessaires nécessaires pour exécuter un programme Java. Il assure la sécurité en séparant les espaces de noms du système de fichiers local de ce qui est importé via le réseau. Étant donné que les classes Java ne sont chargées en mémoire que lorsque cela est nécessaire, le JRE utilise ClassLoader pour traiter cette demande.
Vérificateur de bytecode
Le vérificateur de bytecode garantit le format et la précision du code Java avant qu'il ne soit transmis à l'interpréteur. Il vérifie également le code illégal, qui est du code qui viole les droits d'accès sur les objets ou viole la mise en œuvre des pointeurs. Si un code est en violation, la classe sera considérée comme corrompue et ne sera pas chargée.
Interprète
Une fois le bytecode vérifié, il est chargé, vérifié et exécuté au moment de l'exécution par l'interpréteur. L'interpréteur crée une instance de la JVM qui permet au programme d'être exécuté de manière native sur le matériel sous-jacent.