JVM vs JRE
Java to wieloplatformowy język programowania. Jest również zgodne z zasadą „napisz raz, uruchom wszędzie”. Program napisany w Javie może być skompilowany do kodu bajtowego Java przez kompilator Java. Następnie kod bajtowy można wykonać na dowolnej platformie, na której działa środowisko JRE (Java Runtime Environment). JRE zawiera JVM (Java Virtual Machine), biblioteki podstawowe (które implementują Java API) i inne pliki pomocnicze. JVM to abstrakcyjna maszyna komputerowa, która działa jako pośrednik między środowiskiem JRE specyficznym dla platformy a kodem Java.
Co to jest JVM?
JVM to typ maszyny wirtualnej używanej przez maszyny do wykonywania kodu bajtowego Java. Według firmy Sun Microsystems (która opracowała Javę do czasu jej zakupu przez Oracle, całkiem niedawno), na świecie jest ponad 4 miliardy urządzeń obsługujących JVM. Mówiąc dokładniej, Java Virtual Machine to abstrakcyjna maszyna obliczeniowa zaimplementowana na standardowym sprzęcie i systemie operacyjnym. Jedną z ważnych funkcji zapewnianych przez maszynę JVM jest automatyczna obsługa wyjątków. Zazwyczaj JVM jest wyposażony w kolekcję standardowych bibliotek. W rzeczywistości JRE jest pakietem zawierającym maszynę JVM i klasy implementujące interfejs API języka Java. JVM jest bardzo ważnym komponentem, który obsługuje „skompiluj raz, uruchom w dowolnym miejscu” języka programowania Java. Dopóki JVM działa, kod Java może działać na niej niezależnie od platformy używanej w maszynie. Właśnie dlatego Java jest nazywana językiem wieloplatformowym lub wieloplatformowym.
Co to jest JRE?
JRE to środowisko wykonawcze, w którym uruchamiany jest kod Java. Zazwyczaj środowisko JRE składa się z maszyny JVM, standardowych klas podstawowych (które implementują podstawowy interfejs API języka Java) i innych plików pomocniczych. Typ i struktura środowiska JRE różnią się w zależności od systemu operacyjnego i architektury procesora. Po uruchomieniu kodu Java JRE będzie komunikować się z systemem operacyjnym, który z kolei będzie komunikował się z odpowiednimi komponentami sprzętowymi. Zainstalowanie środowiska JRE w systemie jest niezbędne do uruchomienia dowolnego kodu Java na komputerze. Jednak środowisko JRE nie zawiera kompilatora, debuggera ani żadnych innych narzędzi potrzebnych do tworzenia programów w języku Java (takich jak appletviewer i javac). Jeśli chcesz tworzyć programy w Javie, potrzebujesz JDK (Java Development Kit), który zawiera również JRE.
Jaka jest różnica między i JVM a JRE?
Chociaż w codziennym użyciu terminy JVM i JRE są używane zamiennie, mają swoje różnice. JVM to maszyna wirtualna działająca w systemie operacyjnym, podczas gdy JRE jest środowiskiem wykonawczym. JVM jest częścią środowiska JRE. Specyfikacja JVM działa jako łącze między implementacją środowiska JRE specyficzną dla platformy a standardowymi bibliotekami Java. Dlatego JVM jest jednostką, która zapewnia programiście abstrakcję od wewnętrznych szczegółów implementacji. Odpowiada za interpretację skompilowanego kodu bajtowego. Jednak JVM potrzebuje bibliotek podstawowych i innych plików pomocniczych do wykonania kodu bajtowego Java. Ale czasami JRE jest po prostu identyfikowane jako implementacja JVM.