JVM vs JRE
Java je multiplatformový programovací jazyk. Dodržiava tiež zásadu „napíš raz, spusti kdekoľvek“. Program napísaný v jazyku Java je možné skompilovať do bajtového kódu Java kompilátorom Java. Potom je možné bajtový kód spustiť na akejkoľvek platforme, na ktorej je spustené JRE (Java Runtime Environment). JRE zahŕňa JVM (Java Virtual Machine), základné knižnice (ktoré implementuje Java API) a ďalšie podporné súbory. JVM je abstraktný počítačový stroj, ktorý funguje ako sprostredkovateľ medzi platformami špecifickými JRE a kódom Java.
Čo je JVM?
JVM je typ virtuálneho stroja, ktorý používajú stroje na spúšťanie bajtového kódu Java. Podľa spoločnosti Sun Microsystems (ktorá vyvinula Javu, kým ju nedávno nekúpila spoločnosť Oracle), existuje na svete viac ako 4 miliardy zariadení s podporou JVM. Konkrétnejšie, Java Virtual Machine je abstraktný počítačový stroj implementovaný na štandardnom hardvéri a operačnom systéme. Jednou z dôležitých funkcií poskytovaných JVM je automatizované spracovanie výnimiek. Typicky JVM sprevádza zbierka štandardných knižníc. V skutočnosti je JRE balík obsahujúci JVM a triedy, ktoré implementujú Java API. JVM je veľmi dôležitý komponent, ktorý sa prispôsobuje povahe programovacieho jazyka Java „skompilujte raz, spustite kdekoľvek“. Pokiaľ je spustený JVM, váš kód Java môže bežať nad ním, bez ohľadu na platformu použitú v počítači. To je dôvod, prečo sa Java nazýva multiplatformový alebo multiplatformový jazyk.
Čo je JRE?
JRE je spúšťacie prostredie, na ktorom sa spúšťa kód Java. JRE sa zvyčajne skladá z JVM, štandardných základných tried (ktoré implementujú základné Java API) a ďalších podporných súborov. Typ a štruktúra JRE sa líšia v závislosti od operačného systému a architektúry CPU. Keď je kód Java spustený, JRE bude komunikovať s operačným systémom, ktorý bude zase komunikovať s príslušnými hardvérovými komponentmi. Na spustenie akéhokoľvek kódu java na vašom počítači je nevyhnutné mať na vašom systéme nainštalované JRE. JRE však neobsahuje kompilátor, debugger ani iné nástroje potrebné na vývoj programov Java (ako sú appletviewer a javac). Ak potrebujete vyvíjať programy v Jave, musíte mať JDK (Java Development Kit), ktorý obsahuje aj JRE.
Aký je rozdiel medzi a JVM a JRE?
Hoci sa v každodennom používaní pojmy JVM a JRE používajú zameniteľne, majú svoje rozdiely. JVM je virtuálny stroj, ktorý beží nad operačným systémom, zatiaľ čo JRE je spúšťacie prostredie. JVM je súčasťou JRE. Špecifikácia JVM funguje ako prepojenie medzi implementáciou JRE špecifickou pre platformu a štandardnými Java knižnicami. Preto je JVM entita, ktorá poskytuje programátorovi abstrakciu od detailov vnútornej implementácie. A je zodpovedný za interpretáciu zostaveného bajtkódu. JVM však potrebuje základné knižnice a ďalšie podporné súbory na spustenie bajtového kódu java. Niekedy je však JRE jednoducho identifikované ako implementácia JVM.