JVM vs JRE
„Java“yra kelių platformų programavimo kalba. Taip pat laikomasi principo „rašyk vieną kartą, bėk bet kur“. „Java“kompiliatorius gali sudaryti „Java“parašytą programą į „Java“baitkodą. Tada baitkodas gali būti vykdomas bet kurioje platformoje, kurioje veikia JRE („Java Runtime Environment“). JRE apima JVM („Java Virtual Machine“), pagrindines bibliotekas (diegiančias „Java“API) ir kitus palaikomus failus. JVM yra abstrakti skaičiavimo mašina, veikianti kaip tarpininkas tarp platformų specifinio JRE ir „Java“kodo.
Kas yra JVM?
JVM yra virtualios mašinos tipas, kurį mašinos naudoja „Java“baitkodui vykdyti. Pasak „Sun Microsystems“(kuris „Java“kūrė tol, kol visai neseniai ją įsigijo „Oracle“), pasaulyje yra daugiau nei 4 milijardai JVM palaikančių įrenginių. Tiksliau tariant, „Java Virtual Machine“yra abstraktus skaičiavimo aparatas, įdiegtas standartinėje aparatinėje ir operacinėje sistemose. Vienas iš svarbių JVM teikiamų funkcijų yra automatinis išimčių tvarkymas. Paprastai JVM lydi standartinių bibliotekų kolekcija. Tiesą sakant, JRE yra paketas, kuriame yra JVM ir klasės, diegiančios „Java“API. JVM yra labai svarbus komponentas, kuriam pritaikomas „Java“programavimo kalbos „kompiliuok vieną kartą, paleisk bet kur“pobūdis. Kol veikia JVM, jūsų „Java“kodas gali veikti virš jo, neatsižvelgiant į mašinoje naudojamą platformą. Štai kodėl „Java“vadinama daugiaplatforme arba daugiaplatforme kalba.
Kas yra JRE?
JRE yra vykdymo aplinka, kurioje veikia „Java“kodas. Paprastai JRE sudaro JVM, standartinės pagrindinės klasės (įdiegiančios pagrindinę „Java“API) ir kiti palaikomi failai. JRE tipas ir struktūra skiriasi priklausomai nuo operacinės sistemos ir procesoriaus architektūros. Paleidus „Java“kodą, JRE susisieks su operacine sistema, kuri savo ruožtu kalbės su atitinkamais aparatūros komponentais. JRE įdiegimas jūsų sistemoje yra būtinas norint paleisti bet kokį „Java“kodą jūsų kompiuteryje. Tačiau JRE nėra kompiliatoriaus, derintuvo ar kitų įrankių, reikalingų „Java“programoms kurti (tokių kaip „appletviewer“ir „javac“). Jei reikia kurti programas „Java“, turite turėti JDK („Java Development Kit“), kuriame yra ir JRE.
Kuo skiriasi JVM ir JRE?
Nors kasdien vartojant terminus JVM ir JRE yra keičiama, jie turi skirtumų. JVM yra virtuali mašina, veikianti ant operacinės sistemos, o JRE - vykdymo metu vykdoma aplinka. JVM yra JRE dalis. JVM specifikacija veikia kaip sąsaja tarp platformai būdingo JRE diegimo ir standartinių „Java“bibliotekų. Todėl JVM yra subjektas, kuris pateikia abstrakciją nuo vidinių įgyvendinimo detalių programuotojui. Ir ji yra atsakinga už sukompiliuoto baitkodo interpretavimą. Tačiau „JVM“reikia bazinių bibliotekų ir kitų palaikančių failų, kad būtų vykdomas „Java“baitkodas. Tačiau kartais JRE tiesiog įvardijama kaip JVM įgyvendinimas.