В чем разница между JVM, JDK, JRE и OpenJDK?

В чем разница между JVM, JDK, JRE и OpenJDK?

Я программировал на Java, и я столкнулся с этими фразами, каковы различия между ними?

Ответ 1

JVM

Виртуальная машина Java (JVM) - это виртуальная машина, на которой выполняются байт-коды Java. JVM не понимает исходный код Java; вот почему вы компилируете свои файлы *.java для получения файлов *.class которые содержат байт-коды, понятные JVM. Это также сущность, которая позволяет Java быть "переносимым языком" (писать один раз, запускать где угодно). Действительно, существуют конкретные реализации JVM для разных систем (Windows, Linux, macOS, см. Список в Википедии), цель состоит в том, чтобы с одинаковыми байт-кодами все они давали одинаковые результаты.

JDK и JRE

Чтобы объяснить разницу между JDK и JRE, лучше всего прочитать документацию Oracle и обратиться к диаграмме:

Java Runtime Environment (JRE)

Java Runtime Environment (JRE) предоставляет библиотеки, виртуальную машину Java и другие компоненты для запуска апплетов и приложений, написанных на языке программирования Java. Кроме того, в JRE входят две ключевые технологии развертывания: Java-плагин, который позволяет апплетам работать в популярных браузерах; и Java Web Start, который развертывает автономные приложения по сети. Это также основа для технологий в Java 2 Platform, Enterprise Edition (J2EE) для разработки и развертывания программного обеспечения для предприятий. JRE не содержит инструментов и утилит, таких как компиляторы или отладчики для разработки апплетов и приложений.

Java Development Kit (JDK)

JDK является расширенным набором JRE и содержит все, что есть в JRE, а также такие инструменты, как компиляторы и отладчики, необходимые для разработки апплетов и приложений.

Обратите внимание, что Oracle не единственный, кто предоставляет JDK.

OpenJDK

OpenJDK - это реализация JDK с открытым исходным кодом и основа для Oracle JDK. Почти нет разницы между Oracle JDK и OpenJDK.

Различия изложены в этом блоге:

Вопрос: В чем разница между исходным кодом, найденным в репозитории OpenJDK, и кодом, который вы используете для сборки Oracle JDK?

A: Это очень близко - наш процесс сборки для Oracle JDK выпускает сборку на OpenJDK 7, добавив всего лишь пару частей, таких как код развертывания, который включает в себя реализацию Oracle плагина Java и Java WebStart, а также некоторый третий закрытый исходный код сторонние компоненты, такие как графический растеризатор, некоторые сторонние компоненты с открытым исходным кодом, такие как Rhino, и несколько кусочков, вроде дополнительной документации или сторонних шрифтов. В дальнейшем мы намереваемся открыть все компоненты Oracle JDK с открытым исходным кодом, кроме тех, которые мы рассматриваем как коммерческие функции, такие как JRockit Mission Control (пока недоступно в Oracle JDK), и заменить обремененные сторонние компоненты альтернативами с открытым исходным кодом, чтобы добиться более четного паритета. между базами кода.

Ответ 2

JVM - это виртуальная машина Java - фактически она выполняет байт-код Java.

JRE - это среда выполнения Java - она, помимо прочего, содержит JVM и является тем, что вам нужно для запуска Java-программы.

JDK - это Java Development Kit - это JRE, но с добавлением javac (что вам нужно для компиляции исходного кода Java) и других инструментов программирования.

OpenJDK - это конкретная реализация JDK.

Ответ 3

JDK (Java Development Kit)

Java Developer Kit содержит инструменты, необходимые для разработки Java-программ, и JRE для запуска программ. Инструменты включают компилятор (javac.exe), приложение для запуска Java (java.exe), Appletviewer и т.д.

Компилятор преобразует Java-код в байтовый код. Java-приложение запускает JRE, загружает класс и вызывает его основной метод.

Вам нужен JDK, если вы вообще хотите писать свои собственные программы и компилировать их. Для запуска java-программ достаточно JRE.

JRE предназначен для выполнения файлов Java

i.e. JRE = JVM + классы Java-пакетов (например, утилиты, math, lang, awt, swing и т.д.) + библиотеки времени выполнения.

JDK в основном предназначен для разработки Java. То есть Вы можете создать файл Java (с помощью пакетов Java), скомпилировать файл Java и запустить java файл.

JRE (Java Runtime Environment)

Java Runtime Environment содержит JVM, библиотеки классов и другие поддерживающие файлы. Он не содержит каких-либо средств разработки, таких как компилятор, отладчик и т.д. На самом деле JVM запускает программу и использует библиотеки классов и другие поддерживающие файлы, представленные в JRE. Если вы хотите запустить любую Java-программу, вам необходимо установить JRE в систему

Виртуальная машина Java обеспечивает независимый от платформы способ выполнения кода; Это означает, что компилировать один раз на любом компьютере и запускать его где угодно (любая машина).

JVM (виртуальная машина Java)

Как мы все знаем, когда мы скомпилируем Java файл, вывод не является файлом 'exe, но его a.class. Файл .class состоит из байт-кодов Java, которые понятны JVM. Java Virtual Machine интерпретирует байтовый код в машинный код в зависимости от базовой операционной системы и аппаратной комбинации. Он отвечает за все такие вещи, как сбор мусора, проверка границ массивов и т.д. JVM зависит от платформы.

JVM называется "виртуальным", поскольку он обеспечивает машинный интерфейс, который не зависит от базовой операционной системы и архитектуры аппаратного обеспечения. Эта независимость от аппаратного обеспечения и операционной системы является краеугольным камнем одноразового использования Java-программ для работы с записью.

Существуют разные реализации JVM. Они могут различаться в зависимости от производительности, надежности, скорости и т.д. Эти реализации будут отличаться в тех областях, где спецификация Java не упоминает, как реализовать функции, например, как работает процесс сбора мусора, зависит от JVM, спецификация Java не определяет какой-либо конкретный способ для этого.

Ответ 4

A Виртуальная машина Java (JVM) - это виртуальная машина, которая может выполнять байт-код Java. Это компонент выполнения кода программной платформы Java.

Java Development Kit (JDK) - продукт Oracle Corporation, предназначенный для разработчиков Java. С момента внедрения Java он стал самым широко используемым комплектом разработки программного обеспечения Java (SDK).

Java Runtime Environment, также называемая Java Runtime, среда выполнения

OpenJDK (Open Java Development Kit) - это бесплатная и открытая реализация языка программирования Java. Это результат усилий Sun Microsystems, начатых в 2006 году. Реализация лицензируется в соответствии с GNU General Public License (GPL) с исключением ссылок.

Ответ 5

Просто:

JDK (Java Development Kit):

  • содержит инструменты, необходимые для разработки программ Java.
  • Вам нужен JDK, если вы вообще хотите написать свои собственные программы и скомпилировать их.
  • JDK в основном предназначен для разработки Java.

JRE (среда выполнения Java)

Java Runtime Environment содержит JVM, библиотеки классов и другие поддерживающие файлы. JRE предназначен для выполнения файлов Java.

JVM (виртуальная машина Java)

JVM интерпретирует байтовый код в машинный код в зависимости от базовой операционной системы и аппаратной комбинации. Он отвечает за все такие вещи, как сбор мусора, проверка границ массивов и т.д. Java Virtual Machine обеспечивает независимый от платформы способ выполнения кода.

Ответ 6

JVM - это Java-код виртуальной машины на

JRE - это среда (стандартные библиотеки и JVM), необходимые для запуска приложений Java

JDK - это JRE с инструментами и документацией разработчика

OpenJDK - это версия JDK с открытым исходным кодом, в отличие от обычного JDK, принадлежащего Oracle

Ответ 7

Виртуальная машина Java (JVM)

Когда вы загружаете JRE и устанавливаете на свой компьютер, вы получаете весь код, необходимый для создания JVM. Виртуальная машина Java создается при запуске java-программы с использованием команды java, например. java HelloWorld. JVM отвечает за преобразование байтового кода в машинный код и почему у вас разные JVM для Windows, Linux или Solaris, но один JAR может работать во всей этой операционной системе. Java Virtual Machine находится в основе языка программирования Java и предоставляет несколько функций программисту Java, включая управление памятью и сборку мусора, безопасность и другие сервисы уровня системы. Виртуальную машину Java можно настроить, например, мы можем указать начальную память или максимальную память размера кучи, расположенную внутри JVM во время создания JVM. Если мы предоставили неверный аргумент команде java, он может отказаться от создания виртуальной машины Java, сказав: "Не удалось создать виртуальную машину Java: недопустимый аргумент". Короче говоря, Java Virtual Machine или JVM - это тот, кто обеспечивает независимость платформы от Java.

Java Development Kit (JDK)

JDK также слабо упоминается как JRE, но его лот больше, чем JRE, и он предоставляет все инструменты и исполняемые файлы для компиляции отладки и выполнения Java-программы. Так же, как JRE, JDK также зависит от платформы, и вам нужно использовать отдельный установщик для установки JDK в Linux и Windows. Текущая версия JDK - это 1.7, которая также называется Java7 и содержит javac (java-компилятор) на основе правил программирования Java7 и Java, которые могут выполнять код java7 с новыми функциями, такими как String в Switch, fork-join framework или Automatic Resource Management. Когда вы устанавливаете JDK, папка установки часто упоминается как JAVA_HOME. Все двоичные файлы находятся внутри JAVA_HOME/bin, который включает javac, java и другие двоичные файлы, и они должны быть в вашей системе PATH для компиляции и выполнения программ Java. Дополнительные сведения о пути см. В разделе установки PATH для Java в Windows и UNIX.

Java Runtime Environment (JRE)

Java - это все где-то в браузере, на мобильных устройствах, в телевизорах или в приставках, и если вы используете язык программирования Java, вы знаете, что Java-код, который содержится в файле JAR (Java archive), требует Java Virtual Machine JVM для его выполнения. Теперь JVM является исполняемым или программой, как любая другая программа, и вы можете установить ее на свой компьютер. Вы видели, как браузер часто предлагает загрузить JRE для запуска Java-апплета, загруженного из Интернета. Различные версии JRE доступны на java.oracle.com и большинство пользователей, которые просто хотят выполнить программу Java внутри браузера или автономные загрузки JRE. Все браузеры, включая Internet Explorer, Firefox и Chrome, могут работать с JRE.

Ответ 8

JDK - компилирует код Java в байт. Состоит из отладчиков, компиляторов и т.д.

javac file.java // Is executed using JDK

JVM - выполняет байт-код. JVM - это та, которая делает Java-платформу независимой. Но JVM варьируется для платформ.

JRE - JVM вместе с библиотеками времени выполнения Java для выполнения программ Java.

Ответ 9

Еще один аспект, который стоит упомянуть:

JDK (набор для разработки java)

Вам понадобится это для целей разработки, как это предлагает название.

Например: компания-разработчик программного обеспечения будет устанавливать JDK на своем компьютере, потому что им нужно будет разработать новое программное обеспечение, которое включает в себя компиляцию и запуск своих программ Java.

Итак, мы можем сказать, что JDK = JRE + JVM.

JRE (среда выполнения java)

Ему нужно было запустить Java-программы. Вы не можете скомпилировать с ним программы Java.

Например: обычный пользователь компьютера, который хочет запускать некоторые онлайн-игры, тогда ему понадобится JRE в своей системе для запуска программ Java.

JVM (виртуальная машина Java)

Как вы знаете, он запускает байт-коды. Это делает платформу Java независимой, потому что она выполняет файл .class, который вы получаете после компиляции программы Java, независимо от того, компилируете ли вы ее в Windows, Mac или Linux.

Открыть JDK

Хорошо, как я уже говорил выше. Теперь JDK создается другой компанией, одним из которых является открытый источник и бесплатный для публичного использования OpenJDK, в то время как некоторые другие - это Oracle Corporation JRockit JDK или IBM JDK.

Однако все они могут совпадать с общим пользователем.

Заключение

Если вы программист на Java, вам понадобится JDK в вашей системе, и этот пакет будет включать JRE и JVM, но если вы обычный пользователь, которому нравится играть в онлайн-игры, вам понадобится только JRE, и этот пакет не будет иметь JDK в нем.

Другими словами JDK - дед JRE - отец, а JVM - их сын.

Ответ 10

Java - это язык и включает строгий и строго типизированный синтаксис, с которым вы должны быть хорошо знакомы.

Платформа Java 2, стандартная версия, также известная как J2SE, относится к платформе и включает классы в пакеты java.lang и java.io, среди прочих. Это был строительный блок, на который были встроены Java-приложения.

Виртуальная машина Java или JVM - это виртуальная машина программного обеспечения, которая выполняет скомпилированный Java-код. Поскольку скомпилированный Java-код является просто байт-кодом, JVM отвечает за компиляцию этого байт-кода в машинный код перед его запуском. (Это часто называют компилятором Just In Time или JIT Compiler.) JVM также занимается управлением памятью, поэтому код приложения не должен.

Java Development Kit, или JDK, был и остается частью программного обеспечения, которое разработчики Java используют для создания приложений Java. Он содержит компилятор языка Java, генератор документации, инструменты для работы с собственным кодом и (как правило) исходный код Java для платформы для включения классов отладки платформы.

Java Runtime Environment, или JRE, была и остается частью конечных пользователей программного обеспечения для запуска скомпилированных приложений Java. Он включает в себя JVM, но не содержит каких-либо инструментов разработки, включенных в JDK. Однако JDK содержит JRE.

Ответ 11

Простыми словами:

JVM: Спецификация, описывающая способ/ресурсы для запуска java-программы. На самом деле выполняет байтовый код и делает независимую платформу Java. При этом он отличается для разных платформ. JVM для окон не может работать как JVM для UNIX.

JRE: Реализация JVM. (Библиотеки времени выполнения JVM +)

JDK: JRE + java-компилятор и другие необходимые инструменты для создания Java-программы с нуля

Ответ 12

JVM: это фактически означает интерпретатор байтового кода. Он зависит от платформы. Например, в платформе Windows прецессия "java.exe" или "javaw.exe" является процессом jvm.

JDK: это набор инструментов, содержащий необходимые библиотеки и утилиты для разработки и выполнения java-программы/приложения

JRE: это среда исполнения для java application.ie, она поддерживает только зависящие от времени исполнения зависимости, включая jvm для скомпилированной программы. Если мы хотим скомпилировать java-программу, нам нужно jdk.

Ответ 13

JVM

JVM (виртуальная машина Java) - абстрактная машина. Это спецификация, предоставляющая среду выполнения, в которой может быть запущен java-байт-код. JVM доступны для многих аппаратных и программных платформ.

JRE

JRE является аббревиатурой для Java Runtime Environment.It используется для обеспечения среды выполнения. Это реализация JVM.It физически существует. Она содержит набор библиотек и других файлов, которые JVM использует во время выполнения.

JDK

JDK является акронимом для Java Development Kit. Он физически существует. Он содержит инструменты разработки JRE +.

Ссылка: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

Ответ 14

JVM: виртуальная машина Java. сообщает машине, что делать с кодом Java. Вы не можете загрузить JVM как есть. Он поставляется в одном компоненте.

JRE: Некоторые другие компоненты, упомянутые выше, являются JRE. Это JVM + другие банки для создания среды среды выполнения

JDK: содержит JRE (который, в свою очередь, содержит JVM). Как только вы получаете JDK, вам не нужно устанавливать JRE и JVM отдельно. Он содержит компилятор, который компилирует ваши .java файлы в .class файлы

Ответ 15

JRE - означает время выполнения Java и требуется для запуска приложения Java.

JDK - означает набор для разработки Java и предоставляет инструменты для разработки Java-программы, например. Компилятор Java. Он также содержит JRE.

JVM - означает виртуальную машину Java, и это процесс, отвечающий за запуск приложения Java.

JIT - означает компиляцию Just In Time и помогает повысить производительность Java-приложения, преобразовывая Java-байтовый код в собственный код, когда перекрестное определенное пороговое значение, то есть в основном горячий код, преобразуется в собственный код.

Ответ 16

JRE выполняет приложение, но JVM читает инструкции по строкам так, чтобы он интерпретировал.

JDK= JRE + Средства разработки

JRE= JVM + Библиотечные классы

Ответ 17

JVM Виртуальная машина Java фактически выполняет java-байт-код. Это блок исполнения на платформе JAVA. Он преобразует байт-код в машинный код.

JRE Java Runtime Environment предоставляет минимальные требования для выполнения Java-приложения; он состоит из виртуальной машины Java (JVM), основных классов и поддерживающих файлов.

JDK Java Development Kit, у него есть все инструменты для разработки вашего прикладного программного обеспечения. Это как JRE + JVM

Открыть JDK - это бесплатная и открытая реализация платформы Java.

Ответ 18

В условиях непрофессионала: - JDK = JRE + Средства разработки/отладки, где JDK - это наш полный пакет для работы с Java, от создания компиляции до его запуска. С другой стороны JRE - это просто код (Байт-код).

Примечание. - Если мы устанавливаем JDK или JRE, JVM будет поставляться вместе с пакетами, а JVM - это часть, в которой JIT-компилятор преобразует байт-код в машинный код.

Просто прочитайте статью о JDK, JRE, JVM и JIT

Ответ 19

JDK: полный пакет, который вам нужно написать и запустить java-код

OpenJDK: независимая реализация JDK для улучшения ее качества

JVM. Преобразует Java-код в байт-код и предоставляет спецификации, которые описывают, как должен быть скомпилирован, загружен, проверен, проверен на наличие ошибок и выполнен. Java-код.

JRE: реализация JVM, с помощью которой некоторые библиотеки Java используются для запуска программы

Ответ 20

Чтобы понять разницу между этими тремя, рассмотрим следующую диаграмму. Разница

JDK - Java Development Kit (вкратце JDK) - это Kit, который предоставляет среду для разработки и выполнения (запуска) Java-программы. JDK - это комплект (или пакет), который включает в себя две вещи           Средства разработки (чтобы создать среду для разработки ваших Java-программ)           JRE (для выполнения вашей Java-программы).

Note : JDK is only used by Java Developers.

JRE. Java Runtime Environment (чтобы сказать JRE) - это установочный пакет, который предоставляет среду для запуска (не разрабатывать) java-программы (или приложения) на вашем компьютере. JRE используется только теми, кто хочет запускать Java-программы, то есть конечные пользователи вашей системы.

JVM. Виртуальная машина Java (JVM) является очень важной частью как JDK, так и JRE, потому что она встроена или встроена в оба. Независимо от того, какую программу Java вы используете с помощью JRE или JDK, в JVM и JVM отвечает за выполнение программы Java за строкой, поэтому она также известна как интерпретатор.

Ответ 21

JVM сокращенно обозначается как виртуальная машина Java, JVM является основным компонентом архитектуры Java. JVM написана на языке программирования Си. Компилятор Java производит байт-код для JVM. JVM читает байт-код, проверяет байт-код и связывает код с библиотекой.

JRE сокращенно называется Java Runtime Environment. это обеспечивает среду во время выполнения. Это физически существует. Он содержит JVM + набор библиотек (jar) +other файлов.

JDK сокращенно называется Java Development Kit. это разработка Java-приложений. А также отладка и мониторинг Java-приложений. JDK содержит инструменты JRE +development (javac, java)

OpenJDK OpenJDK - это версия Sun JDK с открытым исходным кодом. Oracle JDK является официальным JDK Sun

Ответ 22

Java Runtime Environment (JRE)
Java - это где-нибудь в браузере, на мобильных устройствах, в телевизорах или в приставках, и если вы используете язык программирования Java, вы знаете, что Java-код, который поставляется в файле JAR (Java archive), требует Java Virtual Machine JVM для его выполнения, Теперь JVM является исполняемым или программой, как любая другая программа, и вы можете установить ее на свой компьютер. Вы видели, как браузер часто предлагает загрузить JRE для запуска Java-апплета, загруженного из Интернета. Различные версии JRE доступны на java.oracle.com и большинство пользователей, которые просто хотят выполнить программу Java внутри браузера или автономные загрузки JRE. Все браузеры, включая Internet Explorer, Firefox и Chrome, могут работать с JRE.

Виртуальная машина Java (JVM)
Когда вы загружаете JRE и устанавливаете на свой компьютер, вы получаете весь код, необходимый для создания JVM. Виртуальная машина Java создается при запуске java-программы с использованием команды java, например. java HelloWorld. JVM отвечает за преобразование байтового кода в машинный код и почему у вас разные JVM для Windows, Linux или Solaris, но один JAR может работать во всей этой операционной системе. Java Virtual Machine находится в основе языка программирования Java и предоставляет несколько функций программисту Java, включая управление памятью и сборку мусора, безопасность и другие сервисы уровня системы. Виртуальную машину Java можно настроить, например, мы можем указать начальную память или максимальную память размера кучи, расположенную внутри JVM во время создания JVM. Если мы предоставили неверный аргумент команде java, он может отказаться от создания виртуальной машины Java, сказав: "Не удалось создать виртуальную машину Java: недопустимый аргумент". Короче говоря, Java Virtual Machine или JVM - это тот, кто обеспечивает независимость платформы от Java.

Java Development Kit (JDK)
JDK также слабо упоминается как JRE, но его много больше, чем JRE, и он предоставляет все инструменты и исполняемые файлы для компиляции отладки и выполнения Java-программы. Так же, как JRE, JDK также зависит от платформы, и вам нужно использовать отдельный установщик для установки JDK в Linux и Windows. Текущая версия JDK - это 1.7, которая также называется Java7 и содержит javac (java-компилятор) на основе правил программирования Java7 и Java, которые могут выполнять код java7 с новыми функциями, такими как String в Switch, fork-join framework или Automatic Resource Management. Когда вы устанавливаете JDK, папка установки часто упоминается как JAVA_HOME. Все двоичные файлы находятся внутри JAVA_HOME/bin, который включает javac, java и другие двоичные файлы, и они должны быть в вашей системе PATH для компиляции и выполнения программ Java. Дополнительные сведения о пути см. В разделе установки PATH для Java в Windows и UNIX.

Разница между JRE, JDK и JVM
Короче говоря, здесь немного различий между JRE, JDK и JVM:

1) JRE и JDK входят в качестве установщика, а JVM в комплекте с ними.
2) JRE содержит только среду для выполнения java-программы, но не содержит другого инструмента для компиляции java-программы.
3) JVM поставляется вместе с JDK и JRE и создается при выполнении Java-программы, предоставляя команду "java".

Перейдите по этой ссылке для просмотра комментариев к этому описанию