JVM vs JRE
Java on platvormideülene programmeerimiskeel. See järgib ka põhimõtet „kirjuta üks kord, jookse ükskõik kuhu“. Java keeles kirjutatud programmi saab Java kompilaator kompileerida Java baidikoodidesse. Seejärel saab baitkoodi käivitada igal platvormil, kus töötab JRE (Java Runtime Environment). JRE sisaldab JVM (Java Virtual Machine), baasraamatukogusid (mis rakendab Java API-d) ja muid toetavaid faile. JVM on abstraktne arvutusmasin, mis toimib vahendajana platvormidele spetsiifilise JRE ja Java-koodi vahel.
Mis on JVM?
JVM on virtuaalmasina tüüp, mida masinad kasutavad Java baitkoodi täitmiseks. Sun Microsystemsi (kes arendas Java välja kuni Oracle'i ostmiseni üsna hiljuti) sõnul on maailmas rohkem kui 4 miljardit JVM-i võimalusega seadet. Täpsemalt, Java Virtual Machine on abstraktsed arvutusmasinad, mis on rakendatud standardsesse riist- ja opsüsteemi. Üks JVM-i pakutavaid olulisi funktsioone on automatiseeritud erandite käsitlemine. Tavaliselt on JVM-iga kaasas standardteekide kogu. Tegelikult on JRE kimp, mis sisaldab JVM-i ja Java API-d juurutavaid klasse. JVM on väga oluline komponent, mis võtab arvesse Java programmeerimiskeele olemust “kompileeri üks kord, jookse ükskõik kuhu”. Kuni JVM töötab, võib teie Java-kood sellel peal töötada, sõltumata masinas kasutatavast platvormist. Seetõttu nimetatakse Java platvormideüleseks või mitme platvormi keeleks.
Mis on JRE?
JRE on täitmiskeskkond, kus Java-koodi käitatakse. Tavaliselt koosneb JRE JVM-ist, standardsetest baasklassidest (mis rakendavad Java põhilist API-d) ja muudest toetavatest failidest. JRE tüüp ja struktuur varieeruvad sõltuvalt opsüsteemist ja CPU arhitektuurist. Java-koodi käivitamisel suhtleb JRE opsüsteemiga, mis omakorda räägib vastavate riistvarakomponentidega. JRE installimine teie arvutisse peab teie arvutis mis tahes Java-koodi käivitamiseks. JRE ei sisalda aga kompilaatorit, silurit ega muid Java-programmide arendamiseks vajalikke tööriistu (näiteks appletviewer ja javac). Kui teil on vaja Java-programme välja töötada, peab teil olema JDK (Java Development Kit), mis sisaldab ka JRE-d.
Mis vahe on JVM ja JRE vahel??
Ehkki igapäevases kasutuses kasutatakse termineid JVM ja JRE vaheldumisi, on neil oma erinevused. JVM on virtuaalne masin, mis töötab opsüsteemi peal, JRE on aga käitustäidete täitmise keskkond. JVM on JRE osa. JVM-i spetsifikatsioon toimib lingina platvormispetsiifilise JRE-i rakendamise ja tavaliste Java-teekide vahel. Seetõttu on JVM üksus, mis pakub abstraktsiooni sisemistest rakenduse üksikasjadest programmeerijale. Ja see vastutab koostatud baitkoodi tõlgendamise eest. JVM vajab aga Java-baidikoodi täitmiseks alusraamatukogusid ja muid toetavaid faile. Kuid mõnikord identifitseeritakse JRE lihtsalt JVM-i rakendamisena.