JVM vs JRE
Java er et programmeringssprog på tværs af platforme. Den overholder også princippet "skriv én gang, løb hvor som helst". Programmet skrevet i Java kan kompileres til Java bytecode af Java compileren. Derefter kan bytekoden udføres på enhver platform, der kører JRE (Java Runtime Environment). JRE inkluderer JVM (Java Virtual Machine), basisbiblioteker (som implementerer Java API) og andre understøttende filer. JVM er en abstrakt computermaskine, der fungerer som en formidler mellem de platformsspecifikke JRE og Java-koden.
Hvad er JVM?
JVM er en type virtuel maskine, der bruges af maskiner til at udføre Java-bytekode. Ifølge Sun Microsystems (som udviklede Java indtil det blev købt af Oracle for ganske nylig) er der mere end 4 milliarder JVM-aktiverede enheder i verden. Mere specifikt er Java Virtual Machine en abstrakt computermaskine implementeret på standard hardware og operativsystem. En af de vigtige funktioner, der leveres af JVM, er automatiseret undtagelseshåndtering. Typisk ledsager en samling af standardbiblioteker JVM. Faktisk er JRE et bundt, der indeholder JVM og klasserne, der implementerer Java API. JVM er en meget vigtig komponent, som rummer "kompiler en gang, kør hvor som helst" karakteren af Java-programmeringssproget. Så længe JVM'en kører, kan din Java-kode køre oven på den, uanset hvilken platform der bruges i maskinen. Det er derfor, Java kaldes et sprog på tværs af platforme eller flere platforme.
Hvad er JRE?
JRE er det eksekveringsmiljø, som Java-koden køres på. Typisk er JRE sammensat af JVM, standard basisklasser (der implementerer basis Java API) og andre understøttende filer. Type og struktur af JRE varierer afhængigt af operativsystemet og CPU-arkitekturen. Når Java-koden køres, vil JRE kommunikere med operativsystemet, som igen vil tale med de tilsvarende hardwarekomponenter. At have JRE installeret på dit system er et must for at køre enhver java-kode på din maskine. JRE inkluderer dog ikke en compiler, debugger eller andre værktøjer, der er nødvendige for udvikling af Java-programmer (såsom appletviewer og javac). Hvis du skal udvikle programmer i Java, skal du have JDK (Java Development Kit), som også inkluderer JRE.
Hvad er forskellen mellem og JVM og JRE?
Selv om udtrykkene JVM og JRE bruges i flæng i daglig brug, har de deres forskelle. JVM er en virtuel maskine, der kører oven på operativsystemet, mens JRE er runtime eksekveringsmiljøet. JVM er en del af JRE. JVM-specifikationen fungerer som bindeleddet mellem den platformsspecifikke JRE-implementering og standard Java-biblioteker. Derfor er JVM den enhed, der leverer abstraktionen fra de indre implementeringsdetaljer til programmøren. Og det er ansvarligt for at fortolke den kompilerede bytekode. JVM har dog brug for basisbibliotekerne og andre understøttende filer for at udføre java-bytekoden. Men nogle gange identificeres JRE simpelthen som en implementering af JVM.