Java-runtime-omgeving

Java Runtime Environment (JRE) is een softwarelaag die bovenop het besturingssysteem van een computer wordt uitgevoerd en aanvullende services biedt die een specifiek Java-programma nodig heeft om te draaien. JRE is een van de drie onderling verbonden componenten die een trifecta vormen voor het ontwikkelen en uitvoeren van Java-applicaties. De andere twee zijn:

  • Java Development Kit (JDK): een set tools voor het ontwikkelen van Java-applicaties. JDK’s worden door ontwikkelaars gekozen op basis van Java-versie en -editie, zoals de Java Enterprise Edition. Ongeacht de versie of editie bevat JDK altijd een compatibele JRE.
  • Java Virtual Machine (JVM): voert live Java-applicaties uit. Elke JRE bevat een standaard JVM.

JRE combineert Java-code die is gemaakt met de JDK met de bibliotheken die nodig zijn om het op een JVM uit te voeren. Vervolgens wordt een instantie gemaakt van de JVM die het resulterende programma uitvoert.

JRE biedt veel integratiebibliotheken, zoals Java IDL, Java Database Connectivity en Java Naming en Directory Interface, om ontwikkelaars te helpen naadloze gegevensverbindingen tussen applicaties en services te creëren. JRE bevat ook pakketten die fundamenteel zijn voor het ontwerpen van applicaties. Sommige pakketten bevatten een framework voor collecties, hulpprogramma’s voor gelijktijdigheid, API voor voorkeuren en Java Archive.

Hoe de Java Runtime-omgeving werkt

Om een ​​runtime-omgeving te creëren, werken JDK en JRE samen om een ​​soepele uitvoering van Java-gebaseerde applicaties binnen elk besturingssysteem mogelijk te maken. De volgende processen vinden plaats tijdens runtime:

ClassLoader

De Java ClassLoader laadt dynamisch alle noodzakelijke klassen die nodig zijn om een ​​Java-programma uit te voeren. Het biedt beveiliging door naamruimten van het lokale bestandssysteem te scheiden van wat via het netwerk wordt geïmporteerd. Omdat Java-klassen alleen in het geheugen worden geladen wanneer dit nodig is, gebruikt de JRE ClassLoader om deze vraag te verwerken.

Bytecode-verificatie

De bytecode-verificator zorgt voor het formaat en de nauwkeurigheid van de Java-code voordat deze wordt doorgegeven aan de tolk. Het controleert ook op illegale code, dit is code die de toegangsrechten op objecten schendt of de implementatie van pointers schendt. Als een code in overtreding is, wordt de klasse als beschadigd beschouwd en wordt deze niet geladen.

Tolk

Nadat de bytecode met succes is geverifieerd, wordt deze tijdens runtime geladen, gecontroleerd en uitgevoerd door de interpreter. De interpreter maakt een instantie van de JVM waarmee het programma native op de onderliggende hardware kan worden uitgevoerd.