JVM vs JRE
Java je višeplatformski programski jezik. Takođe se pridržava principa „napiši jednom, trči bilo gdje“. Program napisan u Javi može se kompajlirati u Java bajt kod od strane Java kompajlera. Zatim, bajtkod se može izvršiti na bilo kojoj platformi koja pokreće JRE (Java Runtime Environment). JRE uključuje JVM (Java Virtual Machine), osnovne biblioteke (koje implementiraju Java API) i druge prateće datoteke. JVM je apstraktna računarska mašina koja djeluje kao posrednik između JRE specifične za platforme i Java koda.
Šta je JVM?
JVM je tip virtuelne mašine koju mašine koriste za izvršavanje Java bajt koda. Prema Sun Microsystems-u (koji je razvijao Javu dok je Oracle nedavno nije kupio), u svijetu postoji više od 4 milijarde JVM uređaja. Preciznije, Java virtuelna mašina je apstraktna računarska mašina implementirana na standardnom hardveru i operativnom sistemu. Jedna od važnih funkcionalnosti koju pruža JVM je automatizovano rukovanje izuzetcima. Tipično, kolekcija standardnih biblioteka prati JVM. U stvari, JRE je skup koji sadrži JVM i klase koje implementiraju Java API. JVM je veoma važna komponenta, koja prihvata prirodu programskog jezika Java „jednom kompajliraj, pokreni bilo gde”. Sve dok je JVM pokrenut, vaš Java kod se može pokrenuti na njemu, bez obzira na platformu koja se koristi na mašini. Zbog toga se Java naziva višeplatformskim ili višeplatformskim jezikom.
Šta je JRE?
JRE je okruženje za izvršavanje na kojem se izvodi Java kod. Tipično, JRE se sastoji od JVM-a, standardnih osnovnih klasa (koje implementiraju osnovni Java API) i drugih pratećih datoteka. Tip i struktura JRE-a variraju u zavisnosti od operativnog sistema i arhitekture procesora. Kada se pokrene Java kod, JRE će komunicirati sa operativnim sistemom, koji će zauzvrat razgovarati sa odgovarajućim hardverskim komponentama. Imati JRE instaliran na vašem sistemu je neophodno za pokretanje bilo kog java koda na vašem računaru. Međutim, JRE ne uključuje kompajler, debager ili bilo koje druge alate potrebne za razvoj Java programa (kao što su appletviewer i javac). Ako trebate razvijati programe u Javi, morate imati JDK (Java Development Kit), koji uključuje i JRE.
Koja je razlika između JVM-a i JRE-a?
Iako se u svakodnevnoj upotrebi termini JVM i JRE koriste naizmjenično, oni imaju svoje razlike. JVM je virtuelna mašina koja radi na vrhu operativnog sistema, dok je JRE okruženje za izvršavanje. JVM je dio JRE. JVM specifikacija djeluje kao veza između implementacije JRE specifične za platformu i standardnih Java biblioteka. Prema tome, JVM je entitet koji omogućava apstrakciju od unutrašnjih detalja implementacije programeru. I odgovoran je za tumačenje kompajliranog bajtkoda. Međutim, JVM-u su potrebne osnovne biblioteke i drugi prateći fajlovi za izvršavanje java bajtkoda. Ali ponekad se JRE jednostavno identifikuje kao implementacija JVM-a.