|
Monet ystävät saattavat olla kuten minä, jotka ovat käyttäneet JAVA:ta pitkään, mutta yhteys ja ero JDK:n, JRE:n ja JVM:n välillä on aina ollut epämääräinen. Tänään kirjoitan tämän artikkelin selvittääkseni näiden kolmen välistä suhdetta.
JDK: Java Development ToolKit. JDK on koko JAVA:n ydin, mukaan lukien Java Runtime Envirnment, joukko Java-työkaluja (javac/java/jdb jne.) sekä Java-pohjaiset kirjastot (eli Java-rajapinnat sisältävät rt.jar). Yleisin JDK on Sunin julkaisema JDK; Sunin lisäksi monet yritykset ja organisaatiot ovat kehittäneet oman JDK:n, kuten ulkomaiset IBM-yritykset, jotka ovat kehittäneet oman JDK:n, kotimainen Taobao on kehittänyt oman JDK:n, eri organisaatiot ovat kehittäneet oman JDK:n saadakseen parannuksia joissain osa-alueissa ja sopeutuakseen omiin tarpeisiinsa, kuten IBM:n JDK:n sanotaan olevan paljon tehokkaampi kuin SUN:n JDK. Mutta joka tapauksessa meidän täytyy ensin hallita perus Sun JDK. JDK:sta on kolme versiota: J2SE, standard edition, standard edition, on versio, jota käytämme yleensä J2EE:tä, Enterprise Edtionia, Enterprise Editionia, käyttäen tätä JDK:ta J2EE-sovellusten kehittämiseen. J2ME, mikroedtion, jota käytetään pääasiassa java-sovelluksiin mobiililaitteissa ja sulautetuissa laitteissa
Käytämme usein JDK:ta viittaamaan Java API:han, Java API on Javan sovellusrajapinta, itse asiassa se on joitakin edeltäjiemme kirjoittamia Java-luokkia, mukaan lukien tärkeitä kielirakenteita ja perusgrafiikkaa, verkko- ja tiedosto-I/O:ta jne., joita kutsumme edeltäjiemme omissa ohjelmissa kirjoittamia luokkia oman kehityksemme perustaksi. Tietenkin on yhä enemmän kolmannen osapuolen kirjastoja, joissa on parempi suorituskyky tai tehokkaammat ominaisuudet, jotka ovat käytössämme.
JRE: Java Runtime Enviromental. Toisin sanoen, kaikkien Java-ohjelmien on oltava JRE:n alaisia, jotta ne toimivat. Sisältää JVM- ja JAVA-ydinkirjastot sekä tukitiedostot. JDK:han verrattuna se ei sisällä kehitystyökaluja – kääntäjiä, virheenkorjaimia ja muita työkaluja.
JVM: Java Virtual Mechinal (JAVA Virtual Machine). JVM on osa JRE:tä, joka on kuvitteellinen tietokone, joka toteutetaan simuloimalla erilaisia tietokonetoimintoja oikealla tietokoneella. JVM:llä on oma kattava laitteistoarkkitehtuuri, kuten prosessorit, pinot, rekisterit jne., ja siihen liittyy myös vastaava käskyjärjestelmä. JVM:n päätehtävä on tulkita oma käskykantansa (eli tavukoodi) ja yhdistää se paikallisen suorittimen käskykantaan tai käyttöjärjestelmän järjestelmäkutsuihin. Java-kieli toimii monialustaisesti, mikä on itse asiassa eri käyttöjärjestelmä, käyttäen erilaisia JVM-kartoitussääntöjä, jotta se olisi riippumaton käyttöjärjestelmästä ja täydellinen monialustainen. JVM:ää eivät kiinnosta ylemmän tason Java-lähdetiedostot, vaan se välittää vain lähdetiedostojen luomista luokkatiedostoista. Luokkatiedosto koostuu JVM-käskyjoukosta, symbolitaulusta ja joistakin lisätiedoista. Seuraava kuva antaa hyvän yleiskuvan JDK:n, JRE:n ja JVM:n suhteesta:
Kehityksemme todellinen tilanne on se, että kun olemme kehittäneet oman JAVA-ohjelman käyttäen JDK:ta (kutsu JAVA API:ta), käännämme tekstijava-tiedostomme JAVA-tavukoodiksi kääntäjän (javac) kautta JDK:ssa, ajamme nämä JAVA-tavukoodit JRE:ssä, JVM jäsentää nämä tavukoodit ja kartoitamme ne suorittimen käskykantaan tai käyttöjärjestelmän järjestelmäkutsuihin.
|