Чим відрізняється JDK від JRE?
Які їх ролі і коли я повинен використовувати ту чи іншу?
Чим відрізняється JDK від JRE?
Які їх ролі і коли я повинен використовувати ту чи іншу?
Відповіді:
JRE є Java Runtime Environment . Це пакет всього необхідного для запуску компільованої програми Java, включаючи віртуальну машину Java (JVM), бібліотеку класів Java, javaкоманду та іншу інфраструктуру. Однак його не можна використовувати для створення нових програм.
JDK є набір Java Development , повнофункціональний SDK для Java. У ньому є все, що має JRE, а також компілятор ( javac) та інструменти (як javadocі jdb). Він здатний створювати та компілювати програми.
Зазвичай, якщо ви дбаєте лише про запуск програм Java на комп’ютері, ви встановите лише JRE. Це все, що вам потрібно. З іншого боку, якщо ви плануєте робити якесь програмування Java, замість цього потрібно встановити JDK.
Іноді, навіть якщо ви не плануєте робити будь-які розробки Java на комп’ютері, вам все одно потрібен встановлений JDK. Наприклад, якщо ви розгортаєте веб-додаток з JSP, ви технічно просто запускаєте програми Java всередині сервера додатків. Навіщо тобі тоді потрібен JDK? Оскільки сервер додатків буде перетворювати JSP в сервлети Java і йому потрібно використовувати JDK для компіляції сервлетів. Я впевнений, що прикладів більше.
Відповідь вище (Пабло) дуже правильна. Це лише додаткова інформація.
JRE , як слід з назви, в середу . В основному це купа каталогів з файлами, пов’язаними з Java:
bin/містить виконавчі програми Java. Найважливішим є java(і для Windows javawтакож), який запускає JVM. Тут також є деякі інші утиліти, такі як keytoolі policytool.conf/ вміщує файли конфігурації, які можна редагувати користувачеві, для яких експерти з Java можуть грати.lib/має велику кількість підтримуючих файлів: деякі .jars, файли конфігурації, файли властивостей, шрифти, переклади, certs тощо. - всі "обрізки" Java. Найголовніше - modulesце файл, який містить .classфайли стандартної бібліотеки Java..dll(Windows) або .dylib(macOS) або .so(Linux) файли під bin/або lib/з підтримуючим, характерним для системи нативним двійковим кодом.JDK також набір каталогів. Це сукупність JRE з деякими доповненнями:
bin/було розширено засобами розробки. Найважливіший з них javac; інші включають jar, javadocі jshell.jmods/, який містить файли JMOD для стандартної бібліотеки, додано. Ці файли дозволяють використовувати стандартну бібліотеку jlink.
JDK - це набір JRE і містить все, що є в JRE, а також такі інструменти, як компілятори та налагоджувачі, необхідні для розробки апплетів та програм. JRE надає бібліотеки, віртуальну машину Java (JVM) та інші компоненти для запуску аплетів та програм, написаних мовою програмування Java.
Простіше кажучи: JDK - це дід, JRE - батько, а JVM - їх син. [тобто JDK> JRE> JVM]
JDK = JRE + Інструменти розробки / налагодження
JRE = JVM + Класи Java-пакети (наприклад, util, математика, lang, awt, swing тощо) + бібліотеки часу виконання.
JVM = Система завантажувача класів + область даних часу виконання + Виконання двигуна.
Іншими словами, якщо ви Java-програміст, вам знадобиться JDK у вашій системі, і цей пакет буде також включати JRE та JVM, але якщо ви звичайний користувач, який любить грати в онлайн ігри, то вам знадобиться лише JRE, і цей пакет не матиме JDK в ньому.
JVM:
Java Virtual Machine (JVM) являє собою віртуальну машину , яка запускати байткод Java. JVM не розуміє вихідний код Java, тому ви компілюєте свої файли * .java, щоб отримати * .class файли, що містять байт-коди, зрозумілі JVM. Це також об'єкт, що дозволяє Java бути "переносною мовою" (написати один раз, запустити куди завгодно). Дійсно, існують конкретні реалізації JVM для різних систем (Windows, Linux, MacOS, див. Список вікіпедій.
JDK і JRE
Щоб пояснити різницю між JDK і JRE, найкраще прочитати документацію Oracle і ознайомитися з діаграмою:
Середовище виконання Java (JRE)
Java Runtime Environment (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.
З офіційного веб-сайту java ...
JRE (середовище виконання Java):
JDK (Java Development Kit)
Одна різниця з точки зору налагодження:
Для налагодження в системних класах Java, таких як String і ArrayList, вам потрібна спеціальна версія JRE, складена з "інформацією про налагодження". JRE, включений до JDK, надає цю інформацію, але звичайний JRE цього не робить. Регулярний JRE не включає цю інформацію, щоб забезпечити кращі показники роботи.
Що таке інформація про налагодження? Ось коротке пояснення, взяте з цієї публікації в блозі :
Сучасні компілятори досить добре перетворюють ваш код високого рівня з його добре розрізаними та вкладеними структурами управління та довільно набраними змінними у велику купу біт, званих машинним кодом (або байт-кодом у випадку Java), єдиною метою якого є як можна швидше працювати на цільовому процесорі (віртуальному процесорі вашого JVM). Код Java перетворюється на кілька інструкцій машинного коду. Змінні засуваються всюди - в стек, в регістри або повністю оптимізуються. Структур та об'єктів навіть не існує в отриманому коді - вони просто абстракція, яка переводиться на жорстко закодовані зсуви в буфери пам'яті.
Тож як відладчик знає, де зупинитися, коли ви попросите його перерватися при вступі до якоїсь функції? Як йому вдається знайти, що показати вам, коли ви запитаєте його про значення змінної? Відповідь - налагодження інформації.
Інформація про налагодження генерується компілятором разом з машинним кодом. Це представлення взаємозв'язку між виконуваною програмою та вихідним вихідним кодом. Ця інформація кодується у заздалегідь визначений формат і зберігається поряд із машинним кодом. Багато таких форматів було винайдено протягом багатьох років для різних платформ та виконуваних файлів.
JVM, JRE, JDK - все це є основою мови Java. Кожен компонент працює окремо. JDK та JRE фізично існують, але JVM - це абстрактна машина, що означає, що вона фізично не існує.
JVM - це підсистема JDK і JRE, яка використовується для перевірки проміжного коду, відомого як "байт-код". Спочатку завантажується "файл класу" (з розширенням .c), що генерується компілятором Java (javac) через завантажувач підсистем JVM і класифікує місце пам'яті (регістри області, стека, купи та ПК) відповідно до їх використання. Потім він перевіряє весь байт-код, щоб переконатися, що він повертається в Java та доступ до всієї пам'яті в мережі. Робота перекладача починається після цього, де він перевіряє всю програму за рядком. Результати, нарешті, відображаються в консолі / браузері / застосуванні через JRE (Java Runtime Environment), яка виконує засоби виконання.
JRE також є підсистемою JDK, яка забезпечує засоби виконання, такі як JVM, класи, виконувані файли, такі як .jar файл тощо.
JDK розшифровується як Java Development Kit. Він містить усі необхідні компоненти, які використовуються в програмуванні Java, такі як клас, метод, swing, AWT, пакет, Java (інтерпретатор), javac (компілятор), appletviewer (програма перегляду програм аплетів) тощо. На закінчення він містить кожен файл, необхідний для розробки додатків, незалежних чи веб-програм.
JRE
JRE є абревіатурою для Java Runtime Environment. Він використовується для забезпечення середовища виконання. Це реалізація JVM.Той існує фізично. Він містить набір бібліотек + інші файли, які JVM використовує під час виконання.
JDK
JDK - це абревіатура для Java Development Kit.Фізично існує. Вона містить інструменти розробки JRE +.
Посилання: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
Зазвичай, коли вам важливо лише запускати програми Java у своєму браузері чи на комп’ютері, ви встановлюватимете лише JRE. Це все, що вам потрібно. З іншого боку, якщо ви плануєте робити якесь програмування Java, вам також знадобиться JDK.
JVM, JRE і JDK залежать від платформи, оскільки конфігурація кожної ОС відрізняється. Але, Java не залежить від платформи.
Віртуальна машина Java (JVM) - це система запуску, яка виконує байт-код Java.
JRE - середовище (стандартні бібліотеки та JVM), необхідні для запуску програм Java.
JDK включає інструменти розробки командного рядка JRE плюс, такі як компілятори та налагоджувачі, необхідні або корисні для розробки апплетів та програм.
Ось простий відповідь безпосередньо від http://docs.oracle.com/javase/7/docs/technotes/guides/
Середовище виконання Java SE (JRE)
JRE надає бібліотеки, віртуальну машину Java та інші компоненти, необхідні для запуску аплетів та програм, написаних мовою програмування Java. Це середовище виконання можна перерозподілити за допомогою додатків, щоб зробити їх вільними.
Набір для розробки Java SE (JDK)
JDK включає інструменти розробки командного рядка JRE плюс, такі як компілятори та налагоджувачі, необхідні або корисні для розробки апплетів та програм.
Якщо ви хочете запускати програми Java, але не розробляти їх, завантажте середовище виконання програми Java або JRE. Якщо ви хочете їх розробити, завантажте комплект Java Development або JDK
Скажімо, JDK - це набір, до якого входять ті речі, які потрібні для розробки та запуску програм Java.
JDK дається як середовище розробки для створення програм, компонентів і аплетів.
Він містить все необхідне для запуску програм Java у складеному вигляді. Вам не потрібні бібліотеки та інші матеріали. Все необхідне вам складено.
JRE не можна використовувати для розробки, використовується лише для запуску програм.
JVM (Java Virtual Machine) - це абстрактна машина. Це специфікація, яка забезпечує середовище виконання, в якому може виконуватися байт-код Java.
JRE є абревіатурою для Java Runtime Environment. Він використовується для забезпечення середовища виконання. Це реалізація JVM.Той існує фізично. Він містить набір бібліотек + інші файли, які JVM використовує під час виконання
JDK - це абревіатура для Java Development Kit.Фізично існує. Вона містить інструменти розробки JRE +
Якщо ви Java-програміст, вам знадобиться JDK у вашій системі, і цей пакет включає також JRE та JVM, але якщо ви звичайний користувач, який любить грати в онлайн-ігри, то вам знадобиться лише JRE, і в цьому пакеті не буде JDK .
JVM
JVM (Java Virtual Machine) - це абстрактна машина. Це специфікація, яка забезпечує середовище виконання, в якому може виконуватися байт-код Java.
JVM доступні для багатьох апаратних та програмних платформ. JVM, JRE і JDK залежать від платформи, оскільки конфігурація кожної ОС відрізняється. Але, Java не залежить від платформи.
JRE
Він містить все необхідне для запуску програм Java у складеному вигляді. Вам не потрібні бібліотеки та інші матеріали. Все необхідне вам складено.
JRE не можна використовувати для розробки, використовується лише для запуску програм.
Набір для розробки Java SE (JDK)
JDK включає інструменти розробки командного рядка JRE плюс, такі як компілятори та налагоджувачі, необхідні або корисні для розробки апплетів та програм.
(Джерела: Питання та відповіді GeeksForGeeks , Огляд платформи Java )
Чітке розуміння цих термінів (JVM, JDK, JRE) має важливе значення для розуміння їх використання та відмінностей.
Віртуальна машина Java JVM (JVM) - це система, що виконує час роботи, яка виконує байт-код Java. JVM - це як віртуальний комп'ютер, який може виконувати набір складених інструкцій та маніпулювати місцями пам'яті. Коли компілятор Java компілює вихідний код, він генерує високооптимізований набір інструкцій, який називається байт-кодом у файлі .class. JVM інтерпретує ці інструкції байт-коду та перетворює їх у специфічний для виконання код код.
JDK Набір для розробки Java (JDK) - це середовище розробки програмного забезпечення, яке можна використовувати для розробки та виконання програм Java. Вона включає в себе JRE та набір інструментів програмування, таких як компілятор Java, інтерпретатор, аплетпрев'юер і переглядач документів. JDK реалізується через платформи Java SE, Java EE або Java ME.
JRE Середовище виконання Java (JRE) - це частина JDK, яка включає JVM, основні класи та кілька бібліотек, що підтримують розробку додатків. Хоча JRE доступний як частина JDK, ви також можете завантажити та використовувати його окремо.
Для повного розуміння ви можете побачити мій блог: Jdk Jre Jvm та відмінності
jdk необхідно компілювати для кодування та перетворення java-коду в байт-коди, тоді як jre необхідний для виконання байтових кодів.
JDK включає інструменти розробки командного рядка JRE плюс, такі як компілятори та налагоджувачі, які необхідні або корисні для розробки апплетів та програм.
JRE - це віртуальна машина Java, на якій працюють ваші Java програми. Він також включає плагіни браузера для виконання Applet.
JDK - це абстрактна машина. Це специфікація, яка забезпечує середовище виконання, в якому може виконуватися байт-код Java.
Отже, в основному JVM <JRE <JDK відповідно до @Jaimin Patel сказав.
Різниця між JDK і JRE полягає в тому, що JDK - це набір для розробки програмного забезпечення для Java, тоді як JRE - це місце, де ви запускаєте свої програми.
припустимо, якщо ви розробник, то ваша роль полягає в розробці програми, а також виконанні програми. тому ви повинні мати середовище для розробки та виконання, яке надає JDK.
припустимо, якщо ви є клієнтом, вам не потрібно турбуватися про розвиток. Просто вам потрібно, це середовище для запуску програми та отримання лише результату, який надає JRE.
JRE виконує програму, але JVM читає вказівки за рядком, щоб бути інтерпретатором.
JDK = JRE + Інструменти розробки
JRE = JVM + Бібліотечні класи
JRE
JRE - абревіатура для Java Runtime Environment. Він використовується для забезпечення середовища виконання. Це реалізація JVM. Це фізично існує. Він містить набір бібліотек + інші файли, які JVM використовує під час виконання.
Впровадження JVM також активно випускається іншими компаніями, крім Sun Micro Systems.
JDK
JDK - це абревіатура для Java Development Kit.Фізично існує. Вона містить інструменти розробки JRE +.