JVM proti JRE
Java je programski jezik za več platform. Prav tako se drži načela „piši enkrat, teči kamor koli“. Prevajalnik Java lahko program, napisan v Javi, sestavi v bajt kodo Java. Nato se lahko bajt kodo izvede na kateri koli platformi, ki poganja JRE (Java Runtime Environment). JRE vključuje JVM (Java Virtual Machine), osnovne knjižnice (ki izvaja Java API) in druge podporne datoteke. JVM je abstraktni računalniški stroj, ki deluje kot posrednik med platformami JRE in kodo Java.
Kaj je JVM?
JVM je vrsta navideznega stroja, ki ga stroji uporabljajo za izvajanje Java bajt. Po podatkih podjetja Sun Microsystems (ki je Javo razvil, dokler ga Oracle še pred kratkim ni kupil), je na svetu več kot 4 milijarde naprav z omogočenim JVM. Natančneje, Java Virtual Machine je abstraktni računalniški stroj, ki se izvaja na standardni strojni opremi in operacijskem sistemu. Ena pomembnih funkcionalnosti, ki jo ponuja JVM, je avtomatizirano ravnanje z izjemami. JVM običajno spremlja zbirka standardnih knjižnic. Pravzaprav je JRE sveženj, ki vsebuje JVM in razrede, ki izvajajo Java API. JVM je zelo pomembna komponenta, ki vsebuje naravo programskega jezika Java "zberi enkrat, teči kamorkoli". Dokler deluje JVM, se lahko koda Java izvaja nad njim, ne glede na platformo, uporabljeno v stroju. To je razlog, zakaj se Java imenuje medplatični ali večplatniški jezik.
Kaj je JRE?
JRE je izvedbeno okolje, v katerem se izvaja koda Java. JRE je navadno sestavljen iz JVM, standardnih osnovnih razredov (ki izvajajo osnovni Java API) in drugih podpornih datotek. Vrsta in struktura JRE se razlikujeta glede na operacijski sistem in arhitekturo procesorja. Ko se zažene koda Java, bo JRE komuniciral z operacijskim sistemom, ki se bo pogovarjal z ustreznimi komponentami strojne opreme. Če je JRE nameščen v vašem sistemu, morate zagnati kodo Java na vašem računalniku. Vendar JRE ne vključuje prevajalnika, odpravljalca napak ali drugih orodij, potrebnih za razvoj programov Java (na primer appletviewer in javac). Če želite razvijati programe na Javi, morate imeti JDK (Java Development Kit), ki vključuje tudi JRE.
Kakšna je razlika med JVM in JRE?
Čeprav se v vsakodnevni uporabi izraza JVM in JRE uporabljata zamenljivo, imata svoje razlike. JVM je virtualni stroj, ki deluje na vrhu operacijskega sistema, medtem ko je JRE okolje za izvajanje. JVM je del JRE. Specifikacija JVM deluje kot povezava med izvedbo JRE, specifično za platformo, in standardnimi knjižnicami Java. Zato je JVM subjekt, ki programerju zagotavlja abstrakcijo od notranjih podrobnosti o izvajanju. In odgovoren je za razlago sestavljenega bajt koda. Vendar JVM potrebuje osnovne knjižnice in druge podporne datoteke za izvedbo bajtode java. Včasih pa je JRE preprosto opredeljen kot implementacija JVM.