Java Runtime Environment (JRE) je softwarová vrstva, která běží nad operačním systémem počítače a poskytuje další služby, které potřebuje ke spuštění konkrétní program Java. JRE je jednou ze tří vzájemně souvisejících komponent, které tvoří trifectu pro vývoj a provoz aplikací Java. Další dva jsou:
- Java Development Kit (JDK): Sada nástrojů pro vývoj aplikací Java. Soubory JDK si vývojáři vybírají podle verze a vydání Java, jako je například Java Enterprise Edition. Bez ohledu na verzi nebo vydání obsahuje JDK vždy kompatibilní JRE.
- Java Virtual Machine (JVM): Spouští živé Java aplikace. Každé JRE obsahuje výchozí JVM.
JRE kombinuje kód Java vytvořený pomocí JDK s knihovnami potřebnými k jeho spuštění na JVM. Poté se vytvoří instance JVM, která provede výsledný program.
JRE poskytuje mnoho integračních knihoven, jako je Java IDL, Java Database Connectivity a Java Naming and Directory Interface, které vývojářům pomáhají vytvářet bezproblémová datová spojení mezi aplikacemi a službami. JRE také zahrnuje balíčky, které jsou základem pro návrh aplikací. Některé balíčky zahrnují rámec kolekcí, obslužné programy souběžnosti, API předvoleb a archiv Java.
Jak prostředí Java Runtime Environment funguje
Chcete-li vytvořit běhové prostředí, JDK a JRE interagují, aby umožnily plynulé spuštění aplikací založených na prostředí Java v jakémkoli operačním systému. Následující procesy probíhají za běhu:
ClassLoader
Java ClassLoader dynamicky načítá všechny nezbytné třídy potřebné ke spuštění programu Java. Poskytuje zabezpečení oddělením jmenných prostorů místního systému souborů od toho, co se importuje prostřednictvím sítě. Vzhledem k tomu, že třídy Java se do paměti načítají pouze v případě, že je to požadováno, používá JRE ke zpracování tohoto požadavku ClassLoader.
Ověřovatel bytového kódu
Ověřovatel bytecode zajišťuje formát a přesnost kódu Java před jeho předáním tlumočníkovi. Rovněž kontroluje nelegální kód, což je kód, který porušuje přístupová práva k objektům nebo porušuje implementaci ukazatelů. Pokud kód porušuje, bude třída považována za poškozenou a nebude načtena.
Tlumočník
Po úspěšném ověření bytecode je za běhu načten, zkontrolován a spuštěn tlumočníkem. Tlumočník vytvoří instanci JVM, která umožňuje nativní spuštění programu na základním hardwaru.