JVM vs. JRE
Java on alustojen välinen ohjelmointikieli. Se noudattaa myös "kirjoita kerran, aja mihin tahansa" -periaatetta. Java-kääntäjä voi kääntää Java-kirjoitetun ohjelman Java-tavukoodiin. Sitten tavukoodi voidaan suorittaa kaikilla alustoilla, joissa on JRE (Java Runtime Environment). JRE sisältää JVM: n (Java Virtual Machine), peruskirjastot (joka toteuttaa Java-sovellusliittymän) ja muut tukitiedostot. JVM on abstrakti laskentakone, joka toimii välittäjänä alustakohtaisen JRE: n ja Java-koodin välillä.
Mikä on JVM?
JVM on virtuaalikone, jota koneet käyttävät Java-tavukoodin suorittamiseen. Sun Microsystemsin (joka kehitti Java-ohjelmistoa siihen asti, kunnes Oracle osti sen äskettäin) mukaan maailmassa on yli 4 miljardia JVM-yhteensopivaa laitetta. Tarkemmin sanottuna Java Virtual Machine on abstrakti laskentakone, joka on toteutettu tavalliselle laitteistolle ja käyttöjärjestelmälle. Yksi tärkeistä JVM: n tarjoamista toiminnoista on automaattinen poikkeusten käsittely. Yleensä JVM: n mukana on kokoelma standardikirjastoja. Itse asiassa JRE on paketti, joka sisältää JVM: n ja luokat, jotka toteuttavat Java-sovellusliittymän. JVM on erittäin tärkeä komponentti, johon mahtuu Java-ohjelmointikielen "käännä kerran, aja mihin tahansa" luonne. Niin kauan kuin JVM on käynnissä, Java-koodisi voi toimia sen päällä riippumatta koneessa käytetystä alustasta. Siksi Java-nimitystä kutsutaan monitasoiseksi tai monitasoiseksi kieleksi.
Mikä on JRE?
JRE on suoritusympäristö, jossa Java-koodi suoritetaan. Tyypillisesti JRE koostuu JVM: stä, tavallisista perusluokista (jotka toteuttavat Java-perusliittymän) ja muista tukitiedostoista. JRE: n tyyppi ja rakenne vaihtelevat käyttöjärjestelmän ja suorittimen arkkitehtuurin mukaan. Kun Java-koodi suoritetaan, JRE kommunikoi käyttöjärjestelmän kanssa, joka puolestaan puhuu vastaavien laitteistokomponenttien kanssa. JRE: n asentaminen järjestelmään on välttämätöntä kaikkien Java-koodien ajamiseksi koneellasi. JRE ei kuitenkaan sisällä kääntäjää, virheenkorjainta tai muita Java-ohjelmien kehittämiseen tarvittavia työkaluja (kuten appletviewer ja javac). Jos sinun on kehitettävä Java-ohjelmia, sinulla on oltava JDK (Java Development Kit), joka sisältää myös JRE.
Mitä eroa on JVM: n ja JRE: n välillä?
Vaikka jokapäiväisessä käytössä termejä JVM ja JRE käytetään keskenään, niillä on eroja. JVM on virtuaalikone, joka toimii käyttöjärjestelmän päällä, kun taas JRE on ajonaikaisen suorituksen ympäristö. JVM on osa JRE: tä. JVM-määrittely toimii linkkinä alustakohtaisen JRE-toteutuksen ja tavallisten Java-kirjastojen välillä. Siksi JVM on kokonaisuus, joka toimittaa abstraktin sisäisistä toteutuksen yksityiskohdista ohjelmoijalle. Ja se on vastuussa käännetyn tavukoodin tulkinnasta. JVM tarvitsee kuitenkin peruskirjastot ja muut tukitiedostot java-tavukoodin suorittamiseksi. Mutta joskus JRE tunnistetaan yksinkertaisesti JVM: n toteutukseksi.