JVM vs JRE
Java je multiplatformový programovací jazyk. Dodržiava tiež zásadu „písať raz, bežať kdekoľvek“. Program napísaný v jazyku Java môže byť kompilovaný do Java bajtového kódu pomocou kompilátora Java. Potom sa môže bytový kód spustiť na akejkoľvek platforme, na ktorej je spustené JRE (Java Runtime Environment). JRE obsahuje JVM (Java Virtual Machine), základné knižnice (ktoré implementujú Java API) a ďalšie podporné súbory. JVM je abstraktný počítač, ktorý funguje ako sprostredkovateľ medzi JRE platforiem a Java kódom.
Čo je JVM?
JVM je typ virtuálneho počítača, ktorý používajú počítače na vykonávanie bajtkódu Java. Podľa spoločnosti Sun Microsystems (ktorá vyvinula Java až do jej zakúpenia spoločnosťou Oracle nedávno) existuje na svete viac ako 4 miliardy zariadení s povoleným JVM. Presnejšie povedané, Java Virtual Machine je abstraktný výpočtový 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 sprevádza JVM súbor štandardných knižníc. JRE je zväzok obsahujúci JVM a triedy, ktoré implementujú rozhranie Java API. JVM je veľmi dôležitá súčasť, ktorá prispôsobuje „kompilujte raz, spustite kdekoľvek“ povahu programovacieho jazyka Java. Pokiaľ je JVM spustený, váš kód Java sa môže spustiť 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 viac platformový jazyk.
Čo je JRE?
JRE je prostredie vykonávania, na ktorom je spustený 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íši v závislosti od operačného systému a architektúry CPU. Po spustení kódu Java bude JRE komunikovať s operačným systémom, ktorý potom bude hovoriť s príslušnými hardvérovými komponentmi. Po nainštalovaní JRE do vášho systému musíte spustiť akýkoľvek java kód na vašom počítači. JRE však neobsahuje kompilátor, debugger ani iné nástroje potrebné na vývoj Java programov (ako appletviewer a javac). Ak potrebujete vyvíjať programy v jazyku Java, musíte mať JDK (Java Development Kit), ktorý obsahuje aj JRE.
Aký je rozdiel medzi JVM a JRE?
Aj keď sa pojmy JVM a JRE v každodennom používaní používajú vzájomne zameniteľne, majú svoje rozdiely. JVM je virtuálny počítač, ktorý beží nad operačným systémom, zatiaľ čo JRE je prostredie vykonávania runtime. JVM je súčasťou JRE. Špecifikácia JVM slúži ako spojenie medzi implementáciou JRE špecifickou pre platformu a štandardnými knižnicami Java. Preto je JVM entita, ktorá programátorovi poskytuje abstrakciu z vnútorných podrobností 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 vykonanie bajtového kódu java. Ale niekedy je JRE jednoducho identifikovaná ako implementácia JVM.