JVM vs JRE
Java är ett plattformsoberoende programmeringsspråk. Den följer också principen "skriv en gång, spring var som helst". Programmet skrivet i Java kan kompileras till Java-bytecode av Java-kompilatorn. Sedan kan bytekoden köras på vilken plattform som helst som kör JRE (Java Runtime Environment). JRE inkluderar JVM (Java Virtual Machine), basbibliotek (som implementerar Java API) och andra stödjande filer. JVM är en abstrakt dator som fungerar som en förmedlare mellan plattformsspecifika JRE och Java-koden.
Vad är JVM?
JVM är en typ av virtuell maskin som används av maskiner för att exekvera Java-bytekod. Enligt Sun Microsystems (som utvecklade Java tills det köptes av Oracle, helt nyligen) finns det mer än 4 miljarder JVM-aktiverade enheter i världen. Mer specifikt är Java Virtual Machine en abstrakt dator som implementeras på standardhårdvara och operativsystem. En av de viktiga funktionerna som JVM tillhandahåller är automatiserad undantagshantering. Vanligtvis följer en samling standardbibliotek med JVM. Faktum är att JRE är ett paket som innehåller JVM och klasserna som implementerar Java API. JVM är en mycket viktig komponent, som rymmer "kompilera en gång, kör var som helst"-karaktären i Java-programmeringsspråket. Så länge som JVM körs kan din Java-kod köras ovanpå den, oavsett vilken plattform som används i maskinen. Det är därför Java kallas ett plattforms- eller flerplattformsspråk.
Vad är JRE?
JRE är exekveringsmiljön där Java-koden körs. Vanligtvis är JRE sammansatt av JVM, standardbasklasser (som implementerar bas Java API) och andra stödjande filer. Typ och struktur för JRE varierar beroende på operativsystem och CPU-arkitektur. När Java-koden körs kommer JRE att kommunicera med operativsystemet, som i sin tur kommer att prata med motsvarande hårdvarukomponenter. Att ha JRE installerat på ditt system är ett måste för att köra valfri java-kod på din maskin. JRE inkluderar dock inte en kompilator, debugger eller andra verktyg som behövs för utveckling av Java-program (som appletviewer och javac). Om du behöver utveckla program i Java måste du ha JDK (Java Development Kit), som också inkluderar JRE.
Vad är skillnaden mellan och JVM och JRE?
Även om termerna JVM och JRE används omväxlande i dagligt bruk, har de sina skillnader. JVM är en virtuell maskin som körs ovanpå operativsystemet, medan JRE är körningsmiljön. JVM är en del av JRE. JVM-specifikationen fungerar som länken mellan den plattformsspecifika JRE-implementeringen och standard Java-biblioteken. Därför är JVM den enhet som tillhandahåller abstraktionen från de inre implementeringsdetaljerna till programmeraren. Och det är ansvarigt för att tolka den kompilerade bytekoden. JVM behöver dock basbiblioteken och andra stödjande filer för att exekvera java-bytekoden. Men ibland identifieras JRE helt enkelt som en implementering av JVM.