В чем разница между JVM , JDK , JRE и OpenJDK ?
Я программировал на Java, и я столкнулся с этими фразами, чем они отличаются?
java
jvm
difference
Алиреза
источник
источник
Ответы:
JVM
Java Virtual Machine (JVM) является виртуальной машиной , которая запускает Java байткод. JVM не понимает исходный код Java; Вот почему вам нужно скомпилировать ваши
*.java
файлы, чтобы получить*.class
файлы, содержащие байт-коды, понятные JVM. Это также сущность, которая позволяет Java быть «переносимым языком» ( писать один раз, запускать где угодно ). Действительно, существуют конкретные реализации JVM для разных систем (Windows, Linux, macOS, см. Список в Википедии ), цель состоит в том, чтобы с одинаковыми байт-кодами все они давали одинаковые результаты.JDK и JRE
Чтобы объяснить разницу между JDK и JRE, лучше всего прочитать документацию Oracle и обратиться к диаграмме:
Обратите внимание, что Oracle не единственный, кто предоставляет JDK.
OpenJDK
OpenJDK - это реализация JDK с открытым исходным кодом и основа для Oracle JDK. Практически нет разницы между Oracle JDK и OpenJDK.
Различия изложены в этом блоге :
Обновление для 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 - она, помимо прочего, содержит JVM и является тем, что вам нужно для запуска Java-программы.
JDK - это Java Development Kit - это JRE, но с добавлением javac (что вам нужно для компиляции исходного кода Java) и других инструментов программирования.
OpenJDK - это конкретная реализация JDK.
источник
other things
содержание в JVM. Кто они такие ? Полностью ли отвечает эта статья на этот вопрос - javabeat.net/what-is-the-difference-between-jrejvm-and-jdkJDK (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 Environment содержит JVM, библиотеки классов и другие вспомогательные файлы. Он не содержит никаких инструментов разработки, таких как компилятор, отладчик и т. Д. На самом деле JVM запускает программу и использует библиотеки классов и другие вспомогательные файлы, предоставленные в JRE. Если вы хотите запустить любую Java-программу, вам необходимо установить JRE в систему
Виртуальная машина Java обеспечивает независимый от платформы способ выполнения кода; Это означает, что один раз скомпилируйте на любой машине и запустите ее где угодно (на любой машине).
JVM (виртуальная машина Java)
Как мы все знаем, когда мы компилируем файл Java, вывод - это не exe, а файл .class. Файл .class состоит из байтовых кодов Java, которые понятны JVM. Виртуальная машина Java интерпретирует байт-код в машинный код в зависимости от базовой операционной системы и комбинации оборудования. Он отвечает за все такие вещи, как сборка мусора, проверка границ массивов и т. Д. 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, среда выполнения
OpenJDK (Open Java Development Kit) - это бесплатная реализация языка программирования Java с открытым исходным кодом. Это результат усилий Sun Microsystems, начатых в 2006 году. Реализация лицензирована в соответствии с GNU General Public License (GPL) за исключением ссылок.
источник
JVM - это виртуальная машина, на которой выполняется Java-код
JRE - это среда (стандартные библиотеки и JVM), необходимая для запуска приложений Java
JDK - это JRE с инструментами разработчика и документацией
OpenJDK - это версия JDK с открытым исходным кодом, в отличие от общего JDK, принадлежащего Oracle
источник
JDK (Java Development Kit):
JRE (среда выполнения Java)
Java Runtime Environment содержит JVM, библиотеки классов и другие вспомогательные файлы. JRE предназначен для выполнения файлов Java.
JVM (виртуальная машина Java)
JVM интерпретирует байт-код в машинный код в зависимости от базовой операционной системы и комбинации оборудования. Он отвечает за все такие вещи, как сборка мусора, проверка границ массивов и т. Д. Виртуальная машина Java обеспечивает независимый от платформы способ выполнения кода.
источник
JDK - компилирует Java в ByteCode. Состоит из отладчиков, компиляторов и т. Д.
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 корпорации Oracle или IBM JDK.
Однако все они могут выглядеть одинаково для обычного пользователя.
Вывод
Если вы программист на Java, вам понадобится JDK в вашей системе, и этот пакет будет также включать JRE и JVM, но если вы обычный пользователь, который любит играть в онлайн-игры, то вам понадобится только JRE, и в этом пакете не будет JDK. ,
Другими словами, JDK - это дедушка, JRE - отец, а JVM - их сын.
источник
Java является языком и включает в себя строгий и строго типизированный синтаксис, с которым вы уже должны быть хорошо знакомы.
Платформа Java 2, Standard Edition, также известная как 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) - это абстрактная машина. Это спецификация, которая обеспечивает среду выполнения, в которой может быть выполнен байт-код 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.
источник
JVM Java Virtual Machine, фактически выполняет байт-код 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 - это версия Sun JDK с открытым исходным кодом. Oracle JDK является официальным JDK от Sun.
источник