Відповіді:
Java Virtual Machine (JVM) є віртуальною машиною , яка запускає Java байткод. JVM не розуміє вихідний код Java; ось чому вам потрібно компілювати свої *.java
файли, щоб отримати *.class
файли, що містять байт-коди, зрозумілі JVM. Це також об'єкт, що дозволяє Java бути "переносною мовою" ( написати один раз, запустити куди завгодно ). Дійсно, існують конкретні реалізації JVM для різних систем (Windows, Linux, macOS, див. Список Вікіпедії ), мета полягає в тому, щоб усі однакові байт-коди давали однакові результати.
Щоб пояснити різницю між JDK та JRE, найкраще прочитати документацію Oracle і ознайомитися з діаграмою:
Середовище виконання Java (JRE)
Середовище виконання Java (JRE) забезпечує бібліотеки, віртуальну машину Java та інші компоненти для запуску аплетів та програм, написаних мовою програмування Java. Крім того, дві основні технології розгортання є частиною JRE: Java Plug-in, що дозволяє запускати аплети в популярних браузерах; і Java Web Start, що розгортає автономні програми через мережу. Це також є основою для технологій платформи Java 2, Enterprise Edition (J2EE) для розробки та розробки програмного забезпечення підприємства. JRE не містить інструментів та утиліт, таких як компілятори або налагоджувачі для розробки апплетів та програм.
Java Development Kit (JDK)
JDK - це набір JRE і містить все, що є в JRE, а також такі інструменти, як компілятори та налагоджувачі, необхідні для розробки апплетів та програм.
Зауважте, що Oracle не єдиний, хто надає JDK.
OpenJDK - це реалізація JDK з відкритим кодом та база для JDK Oracle. Різниці між JDK Oracle та OpenJDK майже немає.
Відмінності вказані в цьому блозі :
Питання: Яка різниця між вихідним кодом, знайденим у сховищі OpenJDK, та кодом, який ви використовуєте для створення JDK Oracle?
Відповідь: Це дуже близько - наш процес збирання для Oracle JDK випускає складання на OpenJDK 7, додаючи лише пару фрагментів, як код розгортання, який включає в себе реалізацію Oracle Java Plugin та Java WebStart Oracle, а також деякий третій закритий джерело сторонні компоненти, такі як графічний растризатор, деякі сторонні компоненти з відкритим кодом, наприклад Rhino, і кілька біт і фрагментів тут і там, як додаткова документація або сторонні шрифти. Просуваючись вперед, наш намір полягає в тому, щоб відкрити вихідний код усіх фрагментів JDK Oracle, за винятком тих, які ми вважаємо комерційними функціями, такими як управління місією JRockit (ще не доступний в Oracle JDK), і замінити обтяжені сторонні компоненти компонентами з відкритим кодом для досягнення більш тісного паритету між базами коду.
Оновлення для JDK 11 - стаття Дональда Сміта намагається розрізнити різницю між Oracle JDK і Oracle OpenJDK: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11- і-пізніше
JVM - це віртуальна машина Java - вона фактично запускає Java ByteCode.
JRE - середовище виконання Java Java - воно містить, серед іншого, JVM, і це те, що вам потрібно для запуску програми Java.
JDK - це Java Development Kit - це JRE, але з javac (саме для цього потрібно скомпілювати вихідний код Java) та інші інструменти програмування.
OpenJDK - це конкретна реалізація JDK.
other things
вміщене в JVM. Хто вони ? Чи повністю відповідає ця стаття на це питання - javabeat.net/what-is-the-difference-between-jrejvm-and-jdk
JDK (Java Development Kit)
Java Developer Kit містить інструменти, необхідні для розробки програм Java, та JRE для запуску програм. Інструменти включають компілятор (javac.exe), запуск програми Java (java.exe), Appletviewer тощо ...
Компілятор перетворює код Java в байт-код. Запуск програми Java відкриває JRE, завантажує клас та викликає його основний метод.
Вам потрібен JDK, якщо ви взагалі хочете написати власні програми та скомпілювати їх. Для запуску програм java достатньо JRE.
JRE орієнтований на виконання файлів Java
тобто JRE = JVM + Java Пакети класів (наприклад, util, математика, lang, awt, swing тощо) + бібліотеки часу виконання.
JDK в основному націлений на розвиток java. Т.е. Ви можете створити файл Java (за допомогою пакетів Java), скласти файл Java та запустити файл Java.
JRE (середовище виконання Java)
Навколишнє середовище Java Runtime містить JVM, бібліотеки класів та інші підтримуючі файли. Він не містить будь-яких інструментів розробки, таких як компілятор, налагоджувач і т.д. Якщо ви хочете запустити будь-яку програму java, вам потрібно встановити JRE в системі
Віртуальна машина Java забезпечує незалежний від платформи спосіб виконання коду; Це означає компілювати один раз у будь-якій машині та запускати його будь-де (будь-яка машина).
JVM (віртуальна машина Java)
Як ми всі знаємо, коли ми компілюємо файл Java, вихід не є "exe", але це ".class" файл. Файл '.class' складається з байтових кодів Java, зрозумілих JVM. Java Virtual Machine інтерпретує байт-код в машинний код залежно від базової комбінації операційної системи та обладнання. Він несе відповідальність за всі речі, такі як збирання сміття, перевірка меж масиву тощо. JVM залежить від платформи.
JVM називається "віртуальною", оскільки він забезпечує машинний інтерфейс, який не залежить від базової операційної системи та апаратної архітектури машини. Ця незалежність від апаратних та операційних систем є наріжним каменем значення для запису програм Java на один раз.
Є різні реалізації JVM. Вони можуть відрізнятися у таких речах, як продуктивність, надійність, швидкість тощо. Ці реалізації відрізнятимуться в тих областях, де специфікація Java не зазначає, як реалізувати функції, наприклад, як працює процес збору сміття залежно від JVM, специфікація Java не відповідає визначте будь-який конкретний спосіб цього зробити.
Віртуальна машина Java (JVM) являє собою віртуальну машину , яка може виконувати Java байт - код. Це компонент виконання коду програмної платформи Java.
Kit Java Development (JDK) є продуктом корпорації Oracle , спрямований на розробників Java. З моменту впровадження Java вона стала на сьогодні найбільш широко використовуваним набором Java Software Development Kit (SDK).
Навколишнє середовище Java , також називається Java Runtime, Runtime Environment
OpenJDK (Open Java Development Kit) - це безкоштовна та відкрита реалізація мови програмування Java. Це результат зусиль Sun Microsystems, розпочатих у 2006 році. Реалізація ліцензується за загальною публічною ліцензією GNU (GPL) за винятковим посиланням.
JVM - це віртуальна машина, на якій виконується код Java
JRE - середовище (стандартні бібліотеки та JVM), необхідні для запуску програм Java
JDK - це JRE з інструментами та документацією для розробників
OpenJDK - це версія з відкритим кодом JDK, на відміну від звичайного JDK, що належить Oracle
JDK (Java Development Kit):
JRE (середовище виконання Java)
Навколишнє середовище Java Runtime містить JVM, бібліотеки класів та інші підтримуючі файли. JRE орієнтований на виконання файлів Java.
JVM (віртуальна машина Java)
JVM інтерпретує байт-код в машинний код залежно від базової операційної системи та апаратних комбінацій. Він несе відповідальність за всі речі, такі як збирання сміття, перевірка меж масиву тощо. Java Virtual Machine забезпечує незалежний від платформи спосіб виконання коду.
JDK - компілює Java до ByteCode. Складається з налагоджувачів, компіляторів тощо.
javac file.java // Is executed using JDK
JVM - Виконує байт-код. JVM - це та, яка робить платформу java незалежною. Але JVM варіюється для платформ.
JRE - JVM разом з бібліотеками виконання Java для виконання програм Java.
Ще один аспект, який варто згадати:
JDK (комплект для розробки java)
Він вам знадобиться для цілей розвитку, як підказує назва.
Наприклад: програмній компанії буде встановлено JDK на свій комп’ютер, оскільки їм потрібно буде розробити нове програмне забезпечення, яке також включає компіляцію та запуск своїх програм Java.
Тож можна сказати, що JDK = JRE + JVM.
JRE (середовище виконання Java)
Це потрібно для запуску програм Java. Ви не можете компілювати програми Java з ним.
Наприклад: звичайному користувачеві комп'ютера, який хоче запустити деякі онлайн-ігри, тоді в його системі знадобиться JRE для запуску програм Java.
JVM (віртуальна машина Java)
Як ви могли знати, запускайте байткоди. Це робить платформу Java незалежною, оскільки вона виконує .class
файл, який ви отримуєте після компіляції програми Java, незалежно від того, компілюєте ви її в Windows, Mac чи Linux.
Відкрийте JDK
Ну, як я вже говорив вище. Зараз JDK виробляється різною компанією, одна з них, яка, можливо, є відкритим кодом і є безкоштовною для публічного використання, - OpenJDK, тоді як деякі інші - JRockit JDK Corporation Oracle Corporation або IBM JDK.
Однак вони можуть виглядати однаковими для загального користувача.
Висновок
Якщо ви Java-програміст, вам знадобиться JDK у вашій системі, і цей пакет буде також включати JRE та JVM, але якщо ви звичайний користувач, який любить грати в онлайн-ігри, то вам знадобиться лише JRE, і в цьому пакеті не буде JDK .
Іншими словами, JDK - це дід, JRE - батько, а JVM - їх син.
Java - це мова, яка містить строгий і сильно набраний синтаксис, з яким ви вже повинні бути добре знайомі.
Платформа Java 2, стандартне видання, також відома як J2SE, посилалася на платформу і включала класи, зокрема, в пакети java.lang та java.io. Саме на цьому будівельному блоці були побудовані програми Java.
Віртуальна машина Java або JVM - це віртуальна машина програмного забезпечення, яка виконує компільований код Java. Оскільки компільований код Java є лише байт-кодом, JVM відповідає за збір цього байт-коду до машинного коду перед його запуском. (Це часто називають компілятором Just In Time або компілятором JIT.) JVM також піклується про управління пам'яттю, щоб код програми не повинен був.
Набір Java Development Kit, або JDK, був і залишається частиною програмного забезпечення, яке розробники Java використовують для створення програм Java. Він містить компілятор мови Java, генератор документації, інструменти для роботи з нативним кодом та (як правило) вихідний код Java для платформи для включення налагодження класів платформи.
Середовище виконання Java або JRE було та залишається частиною завантаження кінцевих користувачів програмного забезпечення для запуску компільованих програм Java. Він включає JVM, але не містить жодного з інструментів розробки, що входять до JDK. JDK, однак, містить JRE.
JVM: Специфікація, яка описує спосіб / ресурси для запуску програми Java. Фактично виконує байт-код і робить платформу java незалежною. При цьому вона відрізняється для різних платформ. JVM для Windows не може працювати як JVM для UNIX.
JRE: Впровадження JVM. (JVM + бібліотеки часу виконання)
JDK: компілятор JRE + java та інші необхідні інструменти для створення програми Java з нуля
JVM : це фактично означає інтерпретатор байтового коду. Це залежить від платформи. Наприклад: на платформі Windows попереднім процесом ' java.exe ' або ' javaw.exe ' є процес jvm.
JDK : це інструментарій, що містить необхідні бібліотеки та утиліти для розробки та виконання програми / додатку Java
JRE : це середовище виконання для java application.ie, воно підтримує лише залежності часу виконання, включаючи jvm для компільованої програми. Якщо ми хочемо скласти програму java, нам потрібен jdk.
JVM: віртуальна машина Java. повідомляє машині, що робити з кодом Java. Ви не можете завантажити JVM так, як є. Він поставляється упакованим в якийсь інший компонент.
JRE: Деякі інші компоненти, про які йдеться вище, є JRE. Це JVM + інші банки для створення середовища виконання
JDK: містить JRE (що, в свою чергу, містить JVM). Після отримання JDK вам не потрібно встановлювати JRE та JVM окремо. Він містить компілятор, який компілює ваші .java файли у .class файли
JVM
JVM (Java Virtual Machine) - це абстрактна машина. Це специфікація, яка забезпечує середовище виконання, в якому може виконуватися байт-код Java. JVM доступні для багатьох апаратних та програмних платформ.
JRE
JRE є абревіатурою для Java Runtime Environment. Він використовується для забезпечення середовища виконання. Це реалізація JVM.І фізично існує. Він містить набір бібліотек + інші файли, які JVM використовує під час виконання.
JDK
JDK - це абревіатура для Java Development Kit.Фізично існує. Вона містить інструменти розробки JRE +.
Посилання: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
Підсумовуючи:
Якщо ви хочете розвиватися в java, вам потрібен JDK, але якщо ви просто хочете запустити java, вам потрібен JRE.
Віртуальна машина Java JVM , фактично виконує байт-код Java. Це блок виконання на платформі JAVA. Він перетворює байт-код у машинний код.
JRE Java Runtime Environment, забезпечує мінімальні вимоги до виконання програми Java; Він складається з віртуальної машини Java (JVM), основних класів та підтримуючих файлів.
JDK Java Development Kit, у ньому є всі інструменти для розробки ваших прикладних програм. Це як JRE + JVM
Open JDK - це безкоштовна та відкрита реалізація платформи Java.
Простіше кажучи: - JDK = JRE + Інструменти розробки / налагодження , де JDK - це наш повний пакет для роботи з Java, починаючи від створення компіляції до запуску. З іншого боку, JRE просто працює з кодом (байт-код).
Примітка: - Установлюємо ми JDK або JRE, JVM поставляється в комплекті з обома пакунками, а JVM - це частина, де компілятор JIT перетворює байтовий код у специфічний код машини.
Просто прочитайте статтю про JDK, JRE, JVM та JIT
JDK : Повний пакет, який потрібно написати та запустити Java-код
OpenJDK : Незалежна реалізація JDK для її покращення
JVM : Перетворює код Java в байт-код і надає технічні характеристики, які розповідають, як слід компілювати, завантажувати, перевіряти, перевіряти на наявність помилок і виконувати код Java.
JRE : Впровадження JVM, за допомогою якого деякі бібліотеки Java використовуються для запуску програми
JRE виконує програму, але JVM читає вказівки за рядком, щоб бути інтерпретатором.
JDK = JRE + Інструменти розробки
JRE = JVM + Бібліотечні класи
JVM скорочується як віртуальна машина Java , JVM є основним компонентом архітектури Java. JVM написаний мовою програмування на С. Компілятор Java виробляє байт-код для JVM. JVM читає байт-код, перевіряючи код байта і пов'язуючи код з бібліотекою.
JRE скорочується як Java Runtime Environment . це забезпечити середовище під час виконання. Це фізично існує. Він містить JVM + набір бібліотек (jar) + інші файли.
JDK скорочується як Java Development Kit . це розробка додатків Java. А також налагодження та моніторинг програм Java. JDK містять інструменти розробки JRE + (javac, java)
OpenJDK OpenJDK - версія з відкритим кодом JDK з відкритим кодом. Oracle JDK - офіційний JDK компанії Sun.