НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ


Мова програмування Java. W3Schools українською. Уроки для початківців від hyperskill

En

JVM, JRE та JDK


Теорія

Мови JVM, такі як Java, Kotlin або Scala, можуть заплутати початківців, оскільки існує ряд основних термінів, які спочатку важко розрізнити. Ця тема допоможе вам ближче познайомитися з розробкою для платформи Java, представивши ці основи та надавши огляд того, як код обробляється різними компонентами платформи.

§1. Віртуальна машина Java (JVM)

Віртуальна машина Java або JVM – це віртуальна симуляція фізичного комп’ютера. Вона виконує Java (або Java-сумісний) байт-код, який надходить після компіляції вихідного коду. У певному сенсі JVM діє як посередник між кодом і реальною машиною. Він працює з набором уніфікованих інструкцій байт-коду, які інтерпретуються та перекладаються в машинні інструкції.

JVM доступні для багатьох апаратних і програмних платформ, тому ви можете запускати байт-код майже всюди. Програма, скомпільована в байт-код, майже завжди не залежить від платформи. Загалом, коли у вас є код мови JVM, вам потрібно скомпілювати його лише один раз, отримати байт-код, і ви зможете запускати його на будь-якій платформі, яка має JVM.

Сьогодні існує різноманітність реалізацій JVM, основним посиланням є віртуальна машина Java HotSpot.


§2. Java Runtime Environment (JRE)

Java Runtime Environment, або JRE, є середовищем виконання. Він містить необхідні компоненти для запуску скомпільованих програм JVM: саму JVM і бібліотеку класів Java (JCL).

JCL — це, по суті, набір стандартних бібліотек, що забезпечують найпоширеніші функції: фундаментальні класи, введення/виведення, математичний пакет, колекції, безпека, набори інструментів інтерфейсу користувача та багато іншого. Ви можете використовувати ці бібліотеки у своїх програмах.

Коли ви запускаєте скомпільовану програму, JRE поєднує байт-код програми з необхідними бібліотеками та запускає JVM, яка виконує отриманий байт-код.


§3. Java Development Kit (JDK)

Набір для розробки Java або JDK – це пакет для розробки програм для платформи Java. Він містить JRE для запуску програм та інструментів для розробників: компілятор Java, налагоджувач, архіватор, генератор документації тощо.

На етапі компіляції компілятори перекладають вихідний код у файли .class, які містять байт-код і можуть бути виконані JVM. Зверніть увагу: якщо ви використовуєте мови JVM, відмінні від Java, вам потрібно буде завантажити компілятори окремо, оскільки вони не входять до складу JDK.

На практиці програми часто складаються з кількох файлів .class, запакованих разом із засобом архівації в один архів Java (файл JAR). JRE може запускати програму, упаковану в JAR, безпосередньо без розпакування заархівованих файлів. Отриманий файл зручніше зберігати та ділитися ним через мережу, оскільки дані стискаються.

До Java 11, якщо ви хотіли лише запустити програму Java, вам було достатньо JRE. Однак після випуску Java 11 для більшості реалізацій JVM JRE більше не можна завантажити як окремий компонент. Якщо ви хочете запускати програми на JVM 11 або новішої версії, вам потрібно встановити JDK.


§4. Зв’язок між JVM, JRE та JDK

Наступне зображення ілюструє зв’язок між JVM, JRE та JDK:

JVM, JRE, JDK

§5. Підсумок

  • Віртуальна машина Java (JVM) виконує скомпільований байт-код.
  • Середовище Java Runtime Environment включає JVM і стандартні бібліотеки та запускає скомпільовані програми.
  • Набір для розробки Java, який включає JRE та засоби розробки, використовується розробниками для написання програм.

Ви також можете переглянути Урок на hyperskill.org.


Практичні завдання та відповіді

Подаються завдання та варіанти відповідей. Правильний варіант виділено синім кольором.

№1. Що вам потрібно як користувачу

Питання: Уявіть, що ви користувач і маєте скомпільовану програму JVM (файл .class). Що потрібно для запуску програми?

Виберіть один варіант зі списку:

  • Компілятор Java
  • Інтерпретатор байт-коду
  • JRE ✔
  • Налагоджувач

Пояснення. Щоб запустити скомпільовану програму JVM (файл .class), вам потрібне середовище виконання Java (JRE), яке містить інтерпретатор байт-коду, необхідний для запуску програми. Отже, правильна відповідь - JRE.


№2. Де знаходиться JVM

Питання: JVM включено в ...

Виберіть один варіант зі списку:

  • JAR
  • JCL
  • Інструменти розробника
  • JRE ✔

Пояснення. JVM включено до JRE (Java Runtime Environment).


№3. Що вам потрібно як розробнику

Питання: Уявіть, що ви хочете написати програму на Java. Спочатку ви напишете файл вихідного коду з розширенням .java. Потім ви скомпілюєте його, щоб отримати файл .class. Нарешті, ви хочете запустити програму. Яке мінімальне середовище необхідне для виконання всіх цих дій?

Виберіть один варіант зі списку:

  • JRE
  • JDK ✔
  • JVM
  • Java компілятор

Пояснення. Мінімальним середовищем, необхідним для виконання всіх цих дій, є JDK (Java Development Kit).


№4. Що включає JDK

Питання: виберіть усі компоненти JDK.

Виберіть один або кілька варіантів зі списку:

  • JRE ✔
  • Java компілятор ✔
  • git
  • IDE

Пояснення. Компонентами JDK є: JRE (Java Runtime Environment), Java Compiler


№5. Що вам потрібно як розробнику?

Питання: Яке мінімальне середовище необхідне для написання, компіляції та запуску програми мовою JVM, відмінною від Java?

Виберіть один варіант зі списку:

  • JVM
  • JRE
  • JDK + Компілятор ✔
  • JDK
  • Компілятор

Пояснення. Мінімальним середовищем, необхідним для написання, компіляції та запуску програми на мові JVM, відмінній від Java, є JDK (Java Development Kit) разом із компілятором для цієї конкретної мови.


№6. Установіть відповідність між абревіатурами та їх визначеннями

Питання: Установіть відповідність між наведеними нижче скороченнями та їхніми визначеннями.

Установіть відповідність між елементами лівого та правого стовпців:

  • JDK – набір інструментів для розробки програм, включаючи компілятор Java.
  • JRE – набір інструментів для запуску програм, включаючи JVM.
  • JVM – віртуальна машина Java.
  • JCL – набір стандартних бібліотек класів.
  • JAR – формат архіву для пакування програм.

№7. Що включає JRE

Питання: Виберіть усі компоненти JRE.

Виберіть один або кілька варіантів зі списку:

  • Бібліотека класів ✔
  • JVM ✔
  • Java компілятор
  • IDE

Пояснення. Компонентами JRE (середовище виконання Java) є: бібліотека класів, JVM (віртуальна машина Java).


№8. Що таке HotSpot?

Питання: Що таке HotSpot?

Виберіть один варіант зі списку:

  • Це назва специфікації віртуальних машин Java.
  • Це одна з існуючих реалізацій JVM. ✔
  • Це єдина легальна реалізація JVM.
  • Це синонім віртуальної машини Java.

Пояснення. HotSpot є однією з існуючих реалізацій JVM (Віртуальна машина Java).


№9. Де знаходиться компілятор Java

Питання: Ви можете знайти javac (компілятор Java) у...

Виберіть один варіант зі списку:

  • JVM (Java Virtual Machine)
  • JDK (Java Development Kit) ✔
  • JRE (Java Runtime Environment)
  • JAR (Java Archive)
  • JCL (Java Class Library)

Пояснення. Ви можете знайти javac (компілятор Java) у JDK (Набір для розробки Java).


У яких операційних системах JVM встановлено за замовчуванням?

Більшість сучасних операційних систем, таких як Windows, macOS і різноманітні дистрибутиви Linux, не мають встановленої JVM за умовчанням. Однак у деяких операційних системах, таких як Oracle Solaris, JVM встановлено за замовчуванням. Крім того, деякі виробники комп’ютерів можуть поставляти свої комп’ютери з попередньо встановленою JVM. Однак, якщо ви хочете запускати програми Java на своєму комп’ютері, вам слід завантажити й інсталювати JRE або JDK з офіційного вебсайту Oracle або з вебсайту OpenJDK.