JVM vs JRE
Java je programski jezik z več platformami. Upošteva tudi načelo "piši enkrat, teci kamor koli". Program, napisan v Javi, lahko prevajalnik Java zbere v bajtno kodo Java. Nato lahko bajtno kodo izvedemo na kateri koli platformi, ki izvaja JRE (Java Runtime Environment). JRE vključuje JVM (Java Virtual Machine), osnovne knjižnice (ki izvajajo Java API) in druge podporne datoteke. JVM je abstraktni računalniški stroj, ki deluje kot posrednik med JRE za platformo in kodo Java.
Kaj je JVM?
JVM je vrsta navideznega stroja, ki ga uporabljajo stroji za izvajanje bajt-kode Java. Po navedbah družbe Sun Microsystems (ki je Javo razvil, dokler je Oracle ni kupil pred kratkim), je na svetu več kot 4 milijarde naprav, ki podpirajo JVM. Natančneje, Java Virtual Machine je abstraktni računalniški stroj, ki se izvaja na standardni strojni opremi in operacijskem sistemu. Ena pomembnih funkcij, ki jih ponuja JVM, je avtomatizirano ravnanje z izjemami. Običajno JVM spremlja zbirka standardnih knjižnic. Pravzaprav je JRE sveženj, ki vsebuje JVM in razrede, ki izvajajo Java API. JVM je zelo pomemben sestavni del, ki prilagaja naravi programskega jezika Java »enkrat prevede, zaženi kjer koli«. Dokler se JVM izvaja, se lahko nad njim izvaja vaša koda Java, ne glede na platformo, ki se uporablja v napravi. Zato se Java imenuje medplatformni ali večplatformni jezik.
Kaj je JRE?
JRE je izvedbeno okolje, v katerem se izvaja koda Java. Običajno JRE sestavljajo JVM, standardni osnovni razredi (ki izvajajo osnovni Java API) in druge podporne datoteke. Vrsta in struktura JRE se razlikujeta glede na operacijski sistem in arhitekturo CPU. Ko se Java koda zažene, JRE komunicira z operacijskim sistemom, ta pa se pogovarja z ustreznimi komponentami strojne opreme. Če je v vašem sistemu nameščen JRE, morate zagnati katero koli kodo Java v računalniku. Vendar JRE ne vključuje prevajalnika, razhroščevalnika ali drugih orodij, potrebnih za razvoj programov Java (na primer appletviewer in javac). Če morate razviti programe na Javi, morate imeti JDK (Java Development Kit), ki vključuje tudi JRE.
Kakšna je razlika med in JVM in JRE?
Čeprav se izraza JVM in JRE v vsakdanji rabi uporabljata zamenljivo, imata razlike. JVM je navidezni stroj, ki deluje na vrhu operacijskega sistema, medtem ko je JRE okolje za izvajanje. JVM je del JRE. Specifikacija JVM deluje kot povezava med implementacijo JRE za platformo in standardnimi knjižnicami Java. Zato je JVM entiteta, ki programerju zagotovi abstrakcijo od notranjih podrobnosti izvedbe. In je odgovoren za interpretacijo sestavljene bajtode. Vendar pa JVM potrebuje osnovne knjižnice in druge podporne datoteke za izvajanje bajtkode Java. Toda včasih je JRE preprosto opredeljen kot izvajanje JVM.