JVM проти JRE
Java є мовою програмування між платформами. Він також дотримується принципу "писати один раз, бігай куди завгодно". Програма, написана на Java, може бути компільована в байт-код Java за допомогою компілятора Java. Потім байт-код може бути виконаний на будь-якій платформі, на якій працює JRE (Java Runtime Environment). JRE включає JVM (Java Virtual Machine), базові бібліотеки (яка реалізує Java API) та інші підтримуючі файли. JVM - це абстрактна обчислювальна машина, яка виступає посередником між платформами JRE та кодом Java.
Що таке JVM?
JVM - це тип віртуальної машини, який використовується машинами для виконання байт-коду Java. За даними Sun Microsystems (яка розробляла Java до тих пір, поки її не придбав Oracle, зовсім недавно) у світі існує понад 4 мільярди пристроїв, що підтримують JVM. Більш конкретно, Java Virtual Machine - це абстрактна обчислювальна машина, реалізована на стандартній апараті та операційній системі. Однією з важливих функціональних можливостей, яку надає JVM, є автоматизована обробка винятків. Як правило, колекція стандартних бібліотек супроводжує JVM. Насправді, JRE - це пакет, що містить JVM та класи, які реалізують Java API. JVM - це дуже важливий компонент, який вміщує мову програмування Java "компілювати один раз, запустити куди завгодно". Поки JVM працює, ваш код Java може працювати над ним, незалежно від платформи, яка використовується в машині. Ось чому Java називається кросплатформою або багатоплатформою.
Що таке JRE?
JRE - середовище виконання, на якому запускається код Java. Зазвичай JRE складається з JVM, стандартних базових класів (які реалізують базовий Java API) та інших підтримуючих файлів. Тип та структура JRE змінюються залежно від операційної системи та архітектури процесора. Коли запускається код Java, JRE зв’яжеться з операційною системою, яка в свою чергу буде спілкуватися з відповідними апаратними компонентами. Встановлення JRE у вашій системі обов’язково для запуску будь-якого коду Java на вашій машині. Однак JRE не включає компілятор, налагоджувач або будь-які інші інструменти, необхідні для розробки програм Java (наприклад, appletviewer і javac). Якщо вам потрібно розробити програми на Java, вам потрібно мати JDK (Java Development Kit), до якого також входить JRE.
Яка різниця між JVM та JRE?
Хоча в повсякденному використанні терміни JVM та JRE вживаються взаємозамінно, вони мають свої відмінності. JVM - це віртуальна машина, яка працює над операційною системою, тоді як JRE - середовище виконання. JVM є частиною JRE. Специфікація JVM діє як зв'язок між конкретною платформою реалізацією JRE та стандартними бібліотеками Java. Отже, JVM є об'єктом, який забезпечує абстрагування від внутрішніх деталей реалізації програмісту. І він відповідає за інтерпретацію складеного байтового коду. Однак JVM потребує базових бібліотек та інших допоміжних файлів для виконання байт-коду Java. Але іноді JRE просто ідентифікується як реалізація JVM.