JVM vs JRE
Java je programski jezik više platformi. Također se pridržava načela „piši jednom, trči bilo gdje“. Program napisan na Javi može sastaviti u Java bajt kod kod Java kompajlera. Zatim se bajt kod može izvršiti na bilo kojoj platformi koja pokreće JRE (Java Runtime Environment). JRE uključuje JVM (Java Virtual Machine), osnovne knjižnice (koja implementira Java API) i ostale prateće datoteke. JVM je apstraktni računalni stroj koji djeluje kao posrednik između platforme JRE i Java koda.
Što je JVM?
JVM je vrsta virtualnog stroja koju strojevi koriste za izvršavanje Java bytecode-a. Prema Sun Microsystems (koji je razvijao Javu dok ju Oracle nije kupio, odnedavno) u svijetu postoji više od 4 milijarde uređaja s omogućenim JVM. Naime, Java Virtual Machine apstraktni je računalni stroj implementiran na standardni hardver i operativni sustav. Jedna od važnih funkcija koju pruža JVM je automatizirano rukovanje iznimkama. Zbirka standardnih knjižnica obično prati JVM. U stvari, JRE je paket koji sadrži JVM i klase koje implementiraju Java API. JVM je vrlo važna komponenta koja obuhvaća prirodu Java programskog jezika „kompajliraj jednom, pokrenite bilo gdje“. Sve dok se JVM pokreće, vaš Java kod može se pokrenuti iznad nje, bez obzira na platformu koja se koristi u uređaju. Zbog toga se Java naziva cross-platformski ili multi-platformski jezik.
Što je JRE?
JRE je izvršno okruženje na kojem se pokreće Java kod. JRE se obično sastoji od JVM-a, standardnih osnovnih klasa (koje implementiraju bazni Java API) i drugih podržanih datoteka. Vrsta i struktura JRE razlikuju se ovisno o operativnom sustavu i arhitekturi CPU-a. Kad se pokrene Java kod, JRE će komunicirati s operativnim sustavom, koji će zauzvrat razgovarati s odgovarajućim hardverskim komponentama. Instaliranje JRE sustava na sustavu obavezno je pokrenuti bilo koji java kod na vašem računalu. Međutim, JRE ne uključuje prevodilac, program za uklanjanje pogrešaka ili bilo koji drugi alat potreban za razvoj Java programa (kao što su 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 upotrebi izrazi JVM i JRE upotrebljavaju naizmjenično, postoje različite razlike. JVM je virtualni stroj koji radi na vrhu operativnog sustava, dok je JRE okruženje za izvršavanje. JVM je dio JRE. Specifikacije JVM djeluju kao poveznica između implementacije JRE specifične za platformu i standardnih Java knjižnica. Stoga je JVM subjekt koji programeru pruža apstrakciju od unutarnjih detalja implementacije. I odgovorna je za tumačenje sastavljenog bajt koda. Međutim, JVM-u su potrebne osnovne knjižnice i ostale prateće datoteke za izvršavanje java bytecode-a. Ali ponekad se JRE jednostavno identificira kao implementacija JVM-a.