|
Sok barátom lehet, hogy olyan van, mint én, akik már régóta használják a JAVA-t, de a JDK, JRE és JVM közötti kapcsolat és különbség mindig is homályos volt. Ma ezt a cikket azért írom, hogy tisztázzam a három közötti kapcsolatot.
JDK: Java Development ToolKit. A JDK az egész JAVA magja, beleértve a Java Runtime Envirnment-et, számos Java eszközt (javac/java/jdb stb.), valamint Java-alapú könyvtárakat (azaz a Java API-k rt.jar-t tartalmaznak). A legáltalánosabb JDK a Sun által kiadott JDK, a Sun mellett sok cég és szervezet fejlesztette ki saját JDK-ját, például külföldi IBM cégek fejlesztették ki saját JDK-jukat, a belföldi Taobao is saját JDK-t fejlesztett, különböző szervezetek saját JDK-t fejlesztettek ki, hogy bizonyos szempontból fejlődjenek, alkalmazkodjanak saját igényeikhez, például az IBM JDK-ját sokkal hatékonyabbnak tartják, mint a SUN JDK-ja. De mindenesetre először el kell sajátítanunk az alap Sun JDK-t. A JDK-nak három változata létezik: J2SE, standard kiadás, standard kiadás, egy olyan verzió, amelyet általában J2EE, Enterpsise Edtion, Enterprise Edition használunk, ezt a JDK-t használjuk J2EE alkalmazások fejlesztésére J2ME, microedtion, amelyet főként Java alkalmazásokhoz használnak mobil eszközökön, beágyazott eszközökön
Gyakran használjuk a JDK-t a Java API-ra hivatkozva, a Java API a Java alkalmazási programozási felülete, valójában néhány Java osztály, amelyeket elődeink írtak, beleértve néhány fontos nyelvi struktúrát és alapvető grafikát, hálózati és fájl I/O-t stb., ezeket az osztályokat elődeink saját programjainkban írtak, hogy alapot adjanak a saját fejlesztésünkhöz. Természetesen egyre több harmadik féltől származó könyvtár is elérhető, amelyek jobb teljesítményt vagy erősebb funkciókat kínálnak.
JRE: Java Runtime Enviromental. Más szóval, minden Java programnak JRE alá kell tartoznia a futáshoz. Tartalmazza a JVM és JAVA magkönyvtárakat és támogató fájlokat. A JDK-hoz képest nem tartalmaz fejlesztő eszközöket – fordítókat, hibakeresőket és egyéb eszközöket.
JVM: Java Virtual Mechinal (JAVA Virtual Machine). A JVM a JRE része, amely egy fiktív számítógép, amelyet különböző számítógépes funkciók szimulációjával valósítanak meg egy valós számítógépen. A JVM-nek saját, teljes hardverarchitektúrája van, például processzorok, veremek, regiszterek stb., és rendelkezik egy megfelelő utasításrendszerrel is. A JVM fő feladata, hogy saját utasításkészletét (azaz bájtkódot) értelmezze, és ezt a helyi CPU utasításkészletéhez vagy az operációs rendszer hívásaira képezze le. A Java nyelv platformon átfut, ami valójában egy másik operációs rendszer, különböző JVM leképezési szabályokat alkalmazva, hogy független legyen az operációs rendszertől és teljes platformossá váljon. A JVM-et nem érdekli a felsőbb szintű Java forrásfájlok, csak a forrásfájlok által generált osztályfájlok érdekli. Az osztályfájl egy JVM utasításkészletből, egy szimbólumtáblából és néhány kiegészítő információból áll. Az alábbi ábra jó áttekintést ad a JDK, JRE és JVM kapcsolatáról:
A fejlesztésünk jelenlegi helyzete az, hogy miután kifejlesztettük saját JAVA programunkat a JDK-val (hívjuk a JAVA API-t), a szöveges java fájlokat JAVA bytecode-ba fordítjuk a JDK fordítóján keresztül (javac), futtatjuk ezeket a JAVA bájtkódokat a JRE-n, a JVM ezeket a bájtkódokat elemzi, és leképezi őket a CPU utasításkészletére vagy az operációs rendszer hívásaira.
|