JVM vs JRE
Java er et programmeringssprog på tværs af platforme. Det overholder også princippet om "skriv en gang, kør hvor som helst". Programmet skrevet i Java kan kompileres til Java bytecode af Java compiler. 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 mægler mellem platformspecifikke JRE og Java-koden.
Hvad er JVM?
JVM er en type virtuel maskine, der bruges af maskiner til at udføre Java-bytecode. Ifølge Sun Microsystems (der udviklede Java, indtil det blev købt af Oracle, for 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. En samling standardbiblioteker ledsager typisk JVM. Faktisk er JRE et bundt, der indeholder JVM og de klasser, der implementerer Java API. JVM er en meget vigtig komponent, der imødekommer Java-programmeringssprogets "kompilering én gang, kør overalt". Så længe JVM kører, kan din Java-kode køre oven på den, uanset hvilken platform der bruges i maskinen. Dette er grunden til, at Java kaldes en tværplatform eller multiplatformsprog.
Hvad er JRE?
JRE er det eksekveringsmiljø, som Java-kode køres på. Typisk er JRE sammensat af JVM, standardbaseklasser (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, kommunikerer JRE 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. Dog inkluderer JRE ikke en compiler, debugger eller andre værktøjer, der er nødvendige til udvikling af Java-programmer (såsom appletviewer og javac). Hvis du har brug for at udvikle programmer i Java, skal du have JDK (Java Development Kit), som også inkluderer JRE.
Hvad er forskellen mellem og JVM og JRE?
Selvom udtrykket JVM og JRE i daglig brug bruges om hverandre, har de deres forskelle. JVM er en virtuel maskine, der kører oven på operativsystemet, mens JRE er eksekveringsmiljøet for runtime. JVM er en del af JRE. JVM-specifikation fungerer som forbindelsen mellem den platformspecifikke JRE-implementering og standard-Java-biblioteker. Derfor er JVM den enhed, der leverer abstraktionen fra de indre implementeringsdetaljer til programmereren. Og det er ansvarligt for at fortolke den kompilerede bytecode. Dog har JVM brug for basisbibliotekerne og andre understøttende filer for at udføre Java-bytecoden. Men nogle gange identificeres JRE simpelthen som en implementering af JVM.