JVM vs JRE
Java on monialustainen ohjelmointikieli. Se noudattaa myös "kirjoita kerran, suorita missä tahansa" -periaatetta. Java-kielellä kirjoitetun ohjelman voi kääntää Java-tavukoodiksi Java-kääntäjällä. Sitten tavukoodi voidaan suorittaa millä tahansa alustalla, jossa on JRE (Java Runtime Environment). JRE sisältää JVM:n (Java Virtual Machine), peruskirjastot (joka toteuttaa Java API:n) ja muita tukitiedostoja. JVM on abstrakti laskentakone, joka toimii välittäjänä alustakohtaisen JRE:n ja Java-koodin välillä.
Mikä on JVM?
JVM on virtuaalikoneen tyyppi, jota koneet käyttävät Java-tavukoodin suorittamiseen. Sun Microsystemsin (joka kehitti Javaa, kunnes Oracle osti sen aivan äskettäin) mukaan maailmassa on yli 4 miljardia JVM-yhteensopivaa laitetta. Tarkemmin sanottuna Java Virtual Machine on abstrakti laskentakone, joka on toteutettu vakiolaitteistolla ja käyttöjärjestelmällä. Yksi JVM:n tarjoamista tärkeistä toiminnoista on automaattinen poikkeusten käsittely. Yleensä JVM:n mukana tulee kokoelma vakiokirjastoja. Itse asiassa JRE on paketti, joka sisältää JVM:n ja luokat, jotka toteuttavat Java API:n. JVM on erittäin tärkeä komponentti, joka ottaa huomioon Java-ohjelmointikielen "käännä kerran, suorita missä tahansa" luonteen. Niin kauan kuin JVM on käynnissä, Java-koodisi voi toimia sen päällä riippumatta koneessa käytetystä alustasta. Tästä syystä Javaa kutsutaan monikäyttöiseksi tai monikäyttöiseksi kieleksi.
Mikä on JRE?
JRE on suoritusympäristö, jossa Java-koodia ajetaan. Tyypillisesti JRE koostuu JVM:stä, vakioperusluokista (jotka toteuttavat Java-perussovellusliittymän) ja muista tukitiedostoista. JRE:n tyyppi ja rakenne vaihtelevat käyttöjärjestelmän ja CPU-arkkitehtuurin mukaan. Kun Java-koodi ajetaan, JRE kommunikoi käyttöjärjestelmän kanssa, joka puolestaan keskustelee vastaavien laitteistokomponenttien kanssa. JRE:n asentaminen järjestelmään on välttämätöntä, jotta kaikki Java-koodit voidaan suorittaa koneellasi. JRE ei kuitenkaan sisällä kääntäjää, debuggeria tai muita työkaluja, joita tarvitaan Java-ohjelmien (kuten appletviewer ja javac) kehittämiseen. Jos haluat kehittää ohjelmia Javalla, sinulla on oltava JDK (Java Development Kit), joka sisältää myös JRE:n.
Mitä eroa on JVM:llä ja JRE:llä?
Vaikka jokapäiväisessä käytössä termejä JVM ja JRE käytetään vaihtokelpoisina, niillä on eroja. JVM on virtuaalikone, joka toimii käyttöjärjestelmän päällä, kun taas JRE on ajonaikainen suoritusympäristö. JVM on osa JRE:tä. JVM-spesifikaatio toimii linkkinä alustakohtaisen JRE-toteutuksen ja standardi Java-kirjastojen välillä. Siksi JVM on kokonaisuus, joka tarjoaa ohjelmoijalle abstraktion sisäisistä toteutuksen yksityiskohdista. Ja se on vastuussa käännetyn tavukoodin tulkinnasta. JVM tarvitsee kuitenkin peruskirjastot ja muut tukitiedostot Java-tavukoodin suorittamiseen. Mutta joskus JRE tunnistetaan yksinkertaisesti JVM:n toteutukseksi.