Научитесь искать, прежде чем публиковать эти типы вопросов. Google действительно полезно во многих отношениях: P
http://www.javabeat.net/what-is-the-difference-between-jrejvm-and-jdk/
JVM Виртуальная машина Java (JVM) представляет собой виртуальную машину, которая запускать байткод Java. JVM не понимает Java typo, поэтому вы компилируете свои * .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 Plug-in, которая позволяет апплетам работать в популярных браузерах; и Java Web Start, которая развертывает автономные приложения по сети. Он также является основой технологий Java 2 Platform, Enterprise Edition (J2EE) для разработки и развертывания корпоративного программного обеспечения. JRE не содержит инструментов и утилит, таких как компиляторы или отладчики для разработки апплетов и приложений.
Java Development Kit (JDK) JDK является надмножеством JRE и содержит все, что есть в JRE, а также такие инструменты, как компиляторы и отладчики, необходимые для разработки апплетов и приложений.
What is the difference between JVM, JDK, JRE & OpenJDK?
@Troubleshooot Я не прошу о разнице. Я спрашиваю, является ли JVM только спецификационным документом или нет. – Adhikari