JVM vs JRE
Java on platvormidevaheline programmeerimiskeel. Samuti järgitakse põhimõtet "kirjuta üks kord, jookse kuhu iganes". Java-kompileerija saab Java-s kirjutatud programmi kompileerida Java-baitkoodiks. Seejärel saab baitkoodi käivitada mis tahes platvormil, kus töötab JRE (Java Runtime Environment). JRE sisaldab JVM-i (Java Virtual Machine), baasikogu (mis rakendab Java API-d) ja muid toetavaid faile. JVM on abstraktne arvutusmasin, mis toimib vahendajana platvormidele vastava JRE ja Java koodi vahel.
Mis on JVM?
JVM on virtuaalmasinatüüp, mida masinad kasutavad Java-baidekoodi käivitamiseks. Sun Microsystemsi (kes arendas Java-d seni, kuni Oracle selle ostis, hiljuti) sõnul on maailmas üle 4 miljardi JVM-toega seadet. Täpsemalt öeldes on Java Virtual Machine abstraktne arvutusmasin, mis on rakendatud standardsele riistvarale ja operatsioonisüsteemile. Üheks oluliseks JVM-i pakutavaks funktsionaalsuseks on automatiseeritud erandite töötlemine. Tavaliselt on JVM-iga kaasas standardkogude kogu. Tegelikult on JRE komplekt, mis sisaldab JVM-i ja Java API juurutavaid klasse. JVM on väga oluline komponent, mis mahutab Java programmeerimiskeele "kompileeri üks kord, jookse kuhu iganes". Kuni JVM töötab, võib teie Java-kood selle peal töötada, olenemata masinas kasutatavast platvormist. Seetõttu nimetatakse Java-d platvormidevaheliseks või mitmeplatvormiliseks keeleks.
Mis on JRE?
JRE on Java-koodi käitamise keskkond. Tavaliselt koosneb JRE JVM-ist, standardsetest baasklassidest (mis rakendavad Java baas-API-d) ja muudest failidest. JRE tüüp ja struktuur varieeruvad sõltuvalt operatsioonisüsteemist ja protsessori arhitektuurist. Kui Java-kood on käivitatud, suhtleb JRE operatsioonisüsteemiga, mis omakorda räägib vastavate riistvarakomponentidega. JRE-i installimine teie süsteemi on teie masina mis tahes Java-koodi käivitamiseks kohustuslik. Kuid JRE ei sisalda kompilaatorit, silurit ega muid Java-programmide arendamiseks vajalikke tööriistu (näiteks appletviewer ja javac). Kui peate arendama Java-programme, peab teil olema JDK (Java Development Kit), mis sisaldab ka JRE-d.
Mis vahe on JVM-il ja JRE-l?
Ehkki igapäevases kasutuses kasutatakse mõisteid JVM ja JRE omavahel asendatult, on neil erinevusi. JVM on virtuaalne masin, mis töötab opsüsteemi peal, samal ajal kui JRE on käituse käivitamise keskkond. JVM on osa JRE-st. JVM-i spetsifikatsioon toimib lingina platvormispetsiifilise JRE-rakenduse ja standardsete Java-teekide vahel. Seetõttu on JVM üksus, mis pakub abstraktsiooni sisemistest rakenduse üksikasjadest programmeerijale. Ja see vastutab kompileeritud baitkoodi tõlgendamise eest. Kuid JVM vajab java baitkoodi käivitamiseks baasraamatukogusid ja muid tugifaile. Kuid mõnikord tuvastatakse JRE lihtsalt JVM-i rakendamisena.