JVM vs JRE
Java je programovací jazyk napříč platformami. Dodržuje také zásadu „psát jednou, běž kamkoli“. Program napsaný v jazyce Java může být kompilován do Java bytecode pomocí kompilátoru Java. Bajtkód pak lze spustit na jakékoli platformě, která provozuje JRE (Java Runtime Environment). JRE zahrnuje JVM (Java Virtual Machine), základní knihovny (které implementují Java API) a další podpůrné soubory. JVM je abstraktní výpočetní stroj, který funguje jako prostředník mezi JRE pro platformu a kódem Java.
Co je JVM?
JVM je typ virtuálního počítače, který používají počítače k provádění Java bytecode. Podle společnosti Sun Microsystems (která nedávno vyvinula Javu, dokud ji Oracle nekupuje), je na světě více než 4 miliardy zařízení podporujících JVM. Přesněji řečeno, Java Virtual Machine je abstraktní výpočetní stroj implementovaný na standardním hardwaru a operačním systému. Jednou z důležitých funkcí poskytovaných JVM je automatizované zpracování výjimek. JVM obvykle doprovází kolekce standardních knihoven. Ve skutečnosti je JRE svazek obsahující JVM a třídy, které implementují rozhraní Java API. JVM je velmi důležitá součást, která pojme „kompilovat jednou, běh kamkoli“ povahy programovacího jazyka Java. Dokud je JVM spuštěný, váš Java kód může běžet nad ním bez ohledu na platformu používanou ve stroji. To je důvod, proč se Java nazývá multiplatformový nebo více platformový jazyk.
Co je JRE?
JRE je prostředí provádění, ve kterém je spuštěn kód Java. JRE se obvykle skládá z JVM, standardních základních tříd (které implementují základní Java API) a dalších podpůrných souborů. Typ a struktura JRE se liší v závislosti na operačním systému a architektuře CPU. Po spuštění kódu Java bude JRE komunikovat s operačním systémem, který zase bude hovořit s odpovídajícími hardwarovými komponentami. Po instalaci JRE do vašeho systému je nutné spustit na vašem počítači jakýkoli java kód. JRE však neobsahuje kompilátor, debugger ani jiné nástroje potřebné pro vývoj Java programů (jako appletviewer a javac). Pokud potřebujete vyvíjet programy v Javě, musíte mít JDK (Java Development Kit), který obsahuje také JRE.
Jaký je rozdíl mezi JVM a JRE?
Ačkoli v běžném používání jsou pojmy JVM a JRE používány zaměnitelně, mají své rozdíly. JVM je virtuální stroj, který běží nad operačním systémem, zatímco JRE je prostředí provádění runtime. JVM je součástí JRE. Specifikace JVM funguje jako spojení mezi implementací JRE pro konkrétní platformu a standardními knihovnami Java. JVM je tedy entita, která programátorovi poskytuje abstrakci z vnitřních detailů implementace. A je zodpovědný za interpretaci kompilovaného bajtkódu. JVM však potřebuje základní knihovny a další podpůrné soubory, aby spustil bytecode java. Ale někdy je JRE jednoduše identifikována jako implementace JVM.