JVM vs JRE
A Java egy platformon átnyúló programozási nyelv. Betartja az „egyszer írj, fuss bárhova” elvet is. A Java-ban írt programot a Java fordító a Java bytecode-ba fordíthatja. Ezután a bájtkód futtatható bármely, a JRE-t futtató platformon (Java Runtime Environment). A JRE tartalmazza a JVM-et (Java Virtual Machine), az alapkönyvtárakat (amelyek a Java API-t valósítják meg) és más támogató fájlokat. A JVM egy absztrakt számítási gép, amely közvetítőként működik a platformspecifikus JRE és a Java kód között.
Mi a JVM?
A JVM egy olyan típusú virtuális gép, amelyet a gépek Java bájtkódjának végrehajtására használnak. A Sun Microsystems szerint (aki a Java fejlesztését addig fejlesztette, amíg az Oracle nemrégiben megvásárolta), a világon több mint 4 milliárd JVM-kompatibilis eszköz van. Pontosabban, a Java Virtual Machine egy elvont számítástechnikai gép, amely szabványos hardveren és operációs rendszeren valósul meg. A JVM egyik fontos funkciója az automatizált kivételkezelés. A JVM-et általában egy szabványos könyvtárak gyűjteménye kíséri. Valójában a JRE egy olyan csomag, amely tartalmazza a JVM-et és a Java API-t megvalósító osztályokat. A JVM egy nagyon fontos összetevő, amely befogadja a Java programozási nyelv „egyszer fordítás, futtatás bárhol” jellegét. Amíg a JVM fut, a Java kód futtatható a tetején, függetlenül a gépben használt platformtól. Ezért nevezik a Java-t cross-platform vagy multi-platform nyelvnek.
Mi a JRE?
A JRE az a végrehajtási környezet, amelyen a Java kód futtatható. A JRE általában a JVM-ből, a standard alaposztályokból (amelyek az alap Java API-t valósítják meg) és más támogató fájlokból állnak. A JRE típusa és felépítése az operációs rendszertől és a CPU architektúrájától függően változik. A Java kód futtatásakor a JRE kommunikálni fog az operációs rendszerrel, amely viszont a megfelelő hardverkomponensekkel fog beszélni. A JRE telepítése a rendszerre elengedhetetlen a java kód futtatásához a gépen. A JRE azonban nem tartalmaz fordítót, hibakeresőt vagy egyéb, a Java programok fejlesztéséhez szükséges eszközt (például appletviewer és javac). Ha Java-ra kell fejlesztenie a programokat, rendelkeznie kell a JDK-val (Java Development Kit), amely tartalmazza a JRE-t is.
Mi a különbség a JVM és a JRE között?
Bár a mindennapi használat során a JVM és a JRE kifejezéseket felcserélhető módon használják, vannak különbségeik. A JVM egy virtuális gép, amely az operációs rendszer tetején fut, míg a JRE a futásidejű végrehajtási környezet. A JVM a JRE része. A JVM specifikáció összekapcsolja a platform-specifikus JRE megvalósítást és a standard Java könyvtárakat. Ezért a JVM az az entitás, amely az absztrakciót a belső megvalósítási részletekből biztosítja a programozó számára. És a fordított bájtkód értelmezéséért felelős. A JVM-nek azonban szüksége van az alapkönyvtárakra és más támogató fájlokra a java bytecode futtatásához. De néha a JRE-t egyszerűen a JVM megvalósításaként azonosítják.