В чем разница между JVM, JDK, JRE & OpenJDK?
18 ответов
JVM
на виртуальная машина Java (JVM) - это виртуальная машина, на которой выполняются байт-коды Java. JVM не понимает исходный код Java, поэтому вы компилируете свой *.java
файлы получить *.class
файлы, содержащие байт-коды, понятные JVM. Это также сущность, которая позволяет Java быть "портативным языком" (написано Однажды, работает везде). Действительно, существуют конкретные реализации JVM для разных систем (Windows, Linux, В macOS, смотрите список Википедии), цель состоит в том, что с такой же байткод все они дают одинаковые результаты.
JDK и JRE
чтобы объяснить разницу между 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 не единственный, кто предоставляет JDKs.
OpenJDK
в OpenJDK является реализацией Java SE 7 JSR с открытым исходным кодом (JSR 336). Теперь почти нет разницы между Oracle JDK и OpenJDK. В прошлом году Oracle приняла это решение : переход к OpenJDK в качестве официальной реализации ссылки Java SE 7
различия изложены в этом блог :
Q: в чем разница между исходным кодом, найденным в Репозиторий OpenJDK и код, который вы используете для создания Oracle JDK?
A: это очень близко - наш процесс сборки для выпусков Oracle JDK строится на OpenJDK 7, добавляя только пару частей, таких как код развертывания, который включает в себя реализацию Oracle плагина Java и Java WebStart, а также некоторые компоненты с закрытым исходным кодом, такие как графический растризатор, некоторые компоненты с открытым исходным кодом, такие как Rhino, и несколько бит и частей здесь и там, как дополнительная документация или сторонние шрифты. Продвигаясь вперед, мы намерены открыть исходный код всех частей Oracle JDK, за исключением тех, которые мы рассматриваем коммерческие функции, такие как JRockit Mission Control (еще не доступны в Oracle JDK), и заменить обремененные компоненты третьей стороны альтернативами с открытым исходным кодом для достижения более близкого паритета между кодовыми базами.
в зависимости от используемой версии VM может отличаться:соответствие между Sun / Oracle JDK, OpenJDK и HotSpot VM версии
- JVM-это виртуальная машина Java - JVM фактически запускает байт-код Java.
- JDK - это Java Developer Kit -- JDK-это то, что вам нужно для компиляции исходного кода Java.
- JRE-это среда выполнения Java - это то, что вам нужно для запуска Java-программы и содержит JVM, среди прочего.
OpenJDK-это конкретная реализация JDK.
пакета JDK (комплект разработки Java)
Java Developer Kit содержит инструменты, необходимые для разработки программ Java, и JRE для запуска программ. Инструменты включают компилятор (javac.exe), Java application launcher (java.exe), Appletviewer, etc...
компилятор преобразует код Java в байт-код. Java application launcher открывает JRE, загружает класс и вызывает его основной метод.
вам нужен JDK, если вы вообще хотите писать свои собственные программы и компилировать их. Для запуска java-программ достаточно JRE.
JRE предназначен для выполнения Java-файлов
то есть JRE = jvm + java Packages Classes (например, util, math, lang,awt, swing и т. д.)+библиотеки времени выполнения.
JDK в основном предназначен для разработки java. Т. е. Вы можете создать файл Java (с помощью пакетов Java), скомпилировать файл Java и запустить файл java.
JRE (среда выполнения Java Среды)
среда выполнения Java содержит JVM, библиотеки классов и другие вспомогательные файлы. Он не содержит никаких средств разработки, таких как компилятор, отладчик и т. д. На самом деле JVM запускает программу, и она использует библиотеки классов и другие вспомогательные файлы, предоставленные в JRE. Если вы хотите запустить любую программу java, вам нужно установить JRE в системе
виртуальная машина Java предоставляет независимый от платформы способ выполнения кода; Это значит скомпилируйте один раз на любой машине и запустите ее где угодно(на любой машине).
JVM (виртуальная машина Java)
Как мы все знаем, когда мы компилируем файл Java, вывод не является "exe", но это".файл класса. ‘.файл class ' состоит из Java byte codes, которые понятны JVM. Виртуальная машина Java интерпретирует байт-код в машинный код в зависимости от базовой операционной системы и оборудования. Он отвечает за все такие вещи, как сбор мусора, проверка границ массива и т. д. JVM зависит от платформы.
JVM называется "виртуальным", потому что он предоставляет интерфейс машины, который не зависит от базовой операционной системы и аппаратной архитектуры машины. Эта независимость от аппаратного обеспечения и операционной системы является краеугольным камнем ценности Java-программ для записи после запуска.
существуют различные реализации JVM. Они могут отличаться в производительности, надежность, скорость и т. д. Эти реализации будут отличаться в тех областях, где спецификация Java не упоминает, как реализовать функции, например, как работает процесс сборки мусора, зависит от JVM, спецификация Java не определяет какой-либо конкретный способ сделать это.
A виртуальная машина Java (JVM) - это виртуальная машина, которая может выполнять байт-код Java. Это компонент выполнения кода программной платформы Java.
на Java Development Kit (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) с исключением ссылок.
просто:
JDK (Java Development Kit):
- содержит инструменты, необходимые для разработки программ на Java.
- вам нужен JDK, если вы вообще хотите писать свои собственные программы и компилировать их.
- JDK в основном предназначен для разработки java.
JRE (Среда Выполнения Java)
среда выполнения Java содержит JVM, библиотеки классов и другие файлы поддержки. JRE предназначен для выполнения файлов Java.
JVM (Виртуальная Машина Java)
в JVM интерпретирует байт-код в машинный код в зависимости от базовой операционной системы и оборудования. Он отвечает за все такие вещи, как сбор мусора, проверка границ массива и т. д. виртуальная машина Java предоставляет независимый от платформы способ выполнения кода.
JVM является ли код Java виртуальной машины выполняется на
JRE является ли среда (стандартные библиотеки и JVM), необходимая для запуска приложений Java
JDK является JRE с инструментами разработчика и документацией
OpenJDK является версией JDK с открытым исходным кодом, в отличие от обычного JDK, принадлежащего Oracle
JDK - компилирует java в байтовый код. Состоит из отладчики, компиляторы и т. д.
javac file.java // Is executed using JDK
JVM - выполняет байт-код. JVM - это тот, который делает платформу java независимой. Но JVM варьируется для платформ.
JRE - JVM вместе с библиотеками времени выполнения java для выполнения программ java.
еще один аспект, о котором стоит упомянуть:
пакета JDK (комплект разработки Java)
Он понадобится вам для целей разработки, таких как имя suggest.
например: компания программного обеспечения будет иметь установку 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-их сын.
JRE - означает время выполнения Java, и это необходимо для запуска приложения Java.
JDK - означает Java development kit и предоставляет инструменты для разработки Java-программы, например Java compiler. Он также содержит JRE.
JVM - означает виртуальную машину Java, и это процесс, ответственный за запуск приложения Java.
JIT - стоит Для как раз вовремя компиляции и помогает повысить производительность Java-приложения путем преобразования байтового кода Java в собственный код при пересечении определенного порога, т. е. в основном горячий код преобразуется в собственный код.
Java-это язык и включает в себя строгий и строго типизированный синтаксис, с которым вы должны быть хорошо знакомы.
платформа Java 2, Standard Edition, также известная как J2SE, относится к платформе и включает классы в java.Lang и Java.Ио пакетов, среди других. Это был строительный блок 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' precess-это процесс jvm.
JDK: это инструментарий, содержащий необходимые библиотеки и утилиты для разработки и выполнения java-программы/приложения
JRE: является средой выполнения для приложения java.ie, он поддерживает только время выполнения зависимости, включая jvm для скомпилированной программы. Если мы хотим скомпилировать java-программу, нам нужен jdk.
JVM: виртуальная машина java. говорит машине, что делать с кодом Java. Вы не можете загрузить JVM как есть. Он поставляется упакованным в какой-то другой компонент.
JRE: какой-то другой компонент, упомянутый выше, является JRE. Это для JVM+ баночки для создания среды выполнения environmeny
JDK: содержит JRE (который, в свою очередь, содержит JVM). После получения JDK вам не нужно устанавливать JRE и JVM отдельно. Он содержит компилятор, который компилирует .Java-файлов для .class files
JVM
JVM (виртуальная машина Java) является абстрактной машиной. Это спецификация, которая предоставляет среду выполнения, в которой байт-код java может быть выполнен. Виртуальные машины Java доступны для многих аппаратных и программных платформ.
JRE
JRE-это аббревиатура для среды выполнения Java.Он используется для обеспечения среды выполнения.Это реализация СПМ.Она физически существует.Он содержит набор библиотек + другие файлы что JVM использует во время выполнения.
JDK
JDK является аббревиатурой для Java Development Kit.Она физически существует.Он содержит инструменты разработки JRE+.
ссылка:http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
JRE выполняет приложение, но JVM читает инструкции строка за строкой, поэтому это интерпретатор.
JDK=JRE + инструменты разработки
JRE=JVM + классы библиотеки
JVM виртуальная машина Java исполняет байт-код Java. Это блок выполнения на платформе JAVA. Он преобразует байт-код в машинный код.
JRE среда выполнения Java предоставляет минимальные требования для выполнения приложения Java; она состоит из виртуальной машины Java (JVM), основных классов и поддерживающих файлов.
JDK Java Development Kit, он имеет все инструменты для разработки прикладное программное обеспечение. Это как JRE+JVM
открыть JDK - это бесплатная реализация платформы Java с открытым исходным кодом.
с точки зрения обывателя:- JDK = JRE + инструменты разработки/отладки, где JDK - наш полный пакет для работы с Java, от создания компиляции до ее запуска.С другой стороны, JRE-это просто запуск кода(байтового кода).
Примечание: - устанавливаем ли мы JDK или JRE, JVM будет поставляться в комплекте с пакетами, а JVM-это часть, где JIT-компилятор преобразует байтовый код в машинный код.
просто прочитайте статью на JDK,JRE , JVM и JIT
JDK: полный пакет, который вам нужно написать и запустить java code
OpenJDK: независимая реализация JDK для того, чтобы сделать его намного лучше
JVM: преобразует код Java в байт-код и предоставляет спецификации, которые говорят, как должен быть скомпилирован, загружен, проверен, проверен на наличие ошибок и выполнен код Java.
JRE: реализация JVM, с которой некоторые библиотеки Java используются для запуска программы