JVM vs JRE
Java je programski jezik na više platformi. Također se drži načela "napiši jednom, trči bilo gdje". Program napisan na Javi Java kompajler može kompilirati u bajt kod Jave. Zatim se bytecode može izvršiti na bilo kojoj platformi koja pokreće JRE (Java Runtime Environment). JRE uključuje JVM (Java virtualni stroj), osnovne knjižnice (koje implementiraju Java API) i druge podržavajuće datoteke. JVM je apstraktni računalni stroj koji djeluje kao posrednik između JRE-a specifičnog za platforme i Java koda.
Što je JVM?
JVM je vrsta virtualnog stroja koju strojevi koriste za izvršavanje Java bajt-koda. Prema Sun Microsystems (koji je razvijao Javu dok je nedavno nije kupio Oracle), u svijetu postoji više od 4 milijarde uređaja s omogućenim JVM-om. Preciznije, Java virtualni stroj apstraktni je računalni stroj implementiran na standardnom hardveru i operacijskom sustavu. Jedna od važnih funkcionalnosti koju pruža JVM je automatizirano rukovanje iznimkama. JVM obično prati zbirka standardnih knjižnica. U stvari, JRE je paket koji sadrži JVM i klase koje implementiraju Java API. JVM je vrlo važna komponenta koja prilagođava prirodu programskog jezika Java "jednom sastavi, pokreni bilo gdje". Sve dok je JVM pokrenut, vaš Java kôd može se izvoditi na njemu, bez obzira na platformu koja se koristi u stroju. Zbog toga se Java naziva jezikom više platformi ili više platformi.
Što je JRE?
JRE je izvršno okruženje na kojem se pokreće Java kôd. Tipično se JRE sastoji od JVM-a, standardnih osnovnih klasa (koje implementiraju osnovni Java API) i drugih pratećih datoteka. Vrsta i struktura JRE razlikuju se ovisno o operativnom sustavu i arhitekturi CPU-a. Kada se Java kôd pokrene, JRE će komunicirati s operativnim sustavom, koji će pak razgovarati s odgovarajućim hardverskim komponentama. Instaliranje JRE na vašem sustavu potrebno je za pokretanje bilo kojeg Java koda na vašem računalu. Međutim, JRE ne uključuje kompajler, program za ispravljanje pogrešaka ili bilo koji drugi alat potreban za razvoj Java programa (poput appletviewer i javac). Ako trebate razvijati programe na Javi, morate imati JDK (Java Development Kit), koji uključuje i JRE.
Koja je razlika između i JVM i JRE?
Iako se u svakodnevnoj uporabi izrazi JVM i JRE koriste naizmjenično, oni imaju svoje razlike. JVM je virtualni stroj koji se izvodi na vrhu operativnog sustava, dok je JRE okruženje za izvršavanje u vrijeme izvođenja. JVM je dio JRE-a. JVM specifikacija djeluje kao veza između implementacije JRE specifične za platformu i standardnih Java knjižnica. Stoga je JVM entitet koji programeru osigurava apstrakciju od detalja unutarnje implementacije. I odgovoran je za tumačenje sastavljenog bytecode-a. Međutim, JVM treba osnovne biblioteke i druge podržavajuće datoteke za izvršavanje Java bajtkoda. Ali ponekad se JRE jednostavno identificira kao provedba JVM-a.