Różnica między JVM a JRE

JVM vs JRE

Java to wieloplatformowy język programowania. Jest również zgodny z zasadą „pisz raz, biegnij gdziekolwiek”. Program napisany w Javie może zostać skompilowany do kodu bajtowego Java przez kompilator Java. Następnie kod bajtowy można wykonać na dowolnej platformie z uruchomionym środowiskiem JRE (Java Runtime Environment). JRE obejmuje 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 mediator między JRE specyficznym dla platform a kodem Java.

Co to jest JVM?

JVM jest rodzajem maszyny wirtualnej używanej przez maszyny do wykonywania kodu bajtowego Java. Według Sun Microsystems (który opracował 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 komputerowa zaimplementowana na standardowym sprzęcie i systemie operacyjnym. Jedną z ważnych funkcji udostępnianych przez JVM jest automatyczna obsługa wyjątków. Zazwyczaj zbiór standardowych bibliotek towarzyszy JVM. W rzeczywistości JRE jest pakietem zawierającym JVM i klasy, które implementują Java API. JVM jest bardzo ważnym komponentem, który uwzględnia naturę języka programowania Java „kompiluj raz, uruchom gdziekolwiek”. Tak długo, jak działa JVM, kod Java może działać na nim, niezależnie od platformy używanej w maszynie. 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ę ze środowiska JVM, standardowych klas podstawowych (które implementują podstawowy interfejs API 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 środowisko JRE będzie komunikować się z systemem operacyjnym, który z kolei będzie rozmawiał z odpowiednimi komponentami sprzętowymi. Zainstalowanie środowiska JRE w systemie jest niezbędne do uruchomienia dowolnego kodu Java na komputerze. Jednak środowisko JRE nie obejmuje kompilatora, debugera ani żadnych innych narzędzi potrzebnych do tworzenia programów Java (takich jak appletviewer i javac). Jeśli potrzebujesz tworzyć programy w Javie, musisz mieć JDK (Java Development Kit), który zawiera również JRE.

Jaka jest różnica między JVM a JRE?

Chociaż w codziennym użyciu terminy JVM i JRE są używane zamiennie, mają one swoje różnice. JVM to maszyna wirtualna działająca na systemie operacyjnym, a JRE to środowisko wykonawcze. JVM jest częścią środowiska JRE. Specyfikacja JVM działa jako łącze między specyficzną dla platformy implementacją JRE a standardowymi bibliotekami Java. Dlatego JVM jest jednostką, która zapewnia abstrakcji od wewnętrznych szczegółów implementacji do programisty. 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.