Java SE 6 против JRE 1.6 против JDK 1.6 - Что это значит?

179

Я вижу много разных терминов Java, плавающих вокруг. Мне нужно установить JDK 1.6. Насколько я понимаю, Java 6 == Java 1.6. Однако, когда я устанавливаю Java SE 6, я получаю JVM, которая сообщает как версия 11.0! Кто может решить безумие?

Джо Шнайдер
источник
12
Есть хорошая Java концептуальная схема (с кликабельными ссылками), которая тоже может помочь.
informatik01

Ответы:

55

Когда вы набираете «java -version», вы видите три номера версий - версия java (по моему, это « 1.6.0_07»), версия среды выполнения Java SE («build 1.6.0_07-b06») и версия HotSpot (по моему, это « build 10.0-b23, mixed mode") Я подозреваю, что «11.0» - это версия HotSpot.

Обновление: HotSpot является (или имел обыкновение быть, теперь они, кажется, используют его, чтобы означать целую ВМ) компилятор точно в срок, который встроен в виртуальную машину Java. Бог знает только, почему Солнце дает ему отдельный номер версии.

Пол Томблин
источник
7
Итак, в чем разница между JVM 1.6 и JVM 11.0? Что такое точка доступа?
Джо Шнайдер
Спасибо, это была путаница - два разных номера версий.
Джо Шнайдер
1
На самом деле HotSpot не является JIT. JIT подразумевает, что компиляция происходит перед выполнением. HotSpot сначала использует интерпретацию для выполнения и анализа кода перед компиляцией / оптимизацией выбранных частей программы.
Джон Нильссон
174
  • JDK - Java Development Kit
  • JRE - среда выполнения Java
  • Java SE - стандартная версия Java

SE определяет набор возможностей и функциональных возможностей; Существуют более сложные выпуски (Enterprise Edition - EE) и более простые (Micro Edition - ME - для мобильных сред).

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

Отредактировано : как отметил Крис Марасти-Георг в комментарии, вы можете найти много информации на веб-сайте Sun Java , в частности в разделе Java SE (2-й вариант, Java SE Development Kit (JDK) 6, обновление 10) ,


Отредактировано 2011-04-06: Мир поворачивается, и Java теперь управляется Oracle, который купил Sun. Позже в этом году sun.comдомен должен потемнеть. Новая страница (на основе перенаправления) - это страница Java в Oracle Tech Network. (См. Также java.com .)


Отредактировано 2013-01-11: И мир продолжает вращаться (несмотря на 2012-12-21), и вот, JRE 6 вот-вот достигнет своего конца поддержки. Oracle говорит, что больше нет публичных обновлений Java 6 после февраля 2013 года.

В данной версии Java этот ответ остается в силе. JDK - это Java Development Kit, JRE - среда выполнения Java, Java SE - стандартная версия и так далее. Но версия 6 (1.6) становится устаревшей.

Отредактировано 2015-04-29: И с очередной парой оборотов вокруг Солнца пришло время и для прекращения поддержки Java SE 7. В апреле 2015 года Oracle подтвердила, что больше не предоставляет общедоступные обновления для Java SE 7. Предварительное завершение общедоступных обновлений для Java SE 8 - март 2017 года, но эта конечная дата может быть изменена (позже, а не раньше).

Джонатан Леффлер
источник
1
Итак, если мне нужен JDK 1.6, что мне установить? Установка Java SE 6 дает мне JVM, которая сообщает как версия 11.0!
Джо Шнайдер
1
Вам нужно пойти на Sun и скачать JDK 1.6 или 6, где бы они ни были.
Крис Марасти-Георг
Я считаю, что то, что поставляется с Java SE 6, должно быть правильным JDK, несмотря на внутренние различия в номерах версий.
Джонатан Леффлер
java.sun.com/javase/downloads/index.jsp 2-й вариант, Java SE Development Kit (JDK) 6, обновление 10
Крис Марасти-Георг,
1
@Pacerier: это было правдой в октябре 2008 года? Кроме того, основным компонентом JDK является компилятор Java, не так ли?
Джонатан Леффлер
104

Это может помочь кому-то:

Я устанавливаю последнюю версию Java в моей системе для разработки, и в настоящее время это Java SE 7. Теперь давайте погрузимся в это «безумие», как вы выразились ...

Все они одинаковы (когда разработчики говорят о Java для разработки):

  • Java SE 7
  • Java SE v1.7.0
  • Java SE Development Kit 7

Начиная с Java v1.5:

  • v5 = v1.5.
  • v6 = v1.6.
  • v7 = v1.7.

И мы можем предположить, что это останется для будущих версий.

Затем для разработчиков загрузите JDK, а не JRE.

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

Как кто-то упомянул выше:

  • JDK = Java Development Kit (разработчики нуждаются в этом, это вы, если вы пишете на Java)
  • JRE = Java Runtime Environment (это нужно пользователям, это каждый компьютер сегодня)
  • Java SE = стандартная версия Java

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

  1. Посетите раздел «Загрузки Java SE»: http://www.oracle.com/technetwork/java/javase/downloads/index.html.
  2. Нажмите «Загрузить JDK» и перейдите на страницу «Загрузки Java SE Development Kit 7»: http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html (обратите внимание, что перейдя по ссылке из шага # 1, вы перейдете к другой ссылке, поскольку теперь выходят обновления JDK 1.7, более поздние версии)
  3. Принять соглашение :)
  4. Нажмите «Java SE Development Kit 7 (Windows x64)»: http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe (для моей 64-разрядной версии Windows 7 система)
  5. Теперь вы загружаете (надеюсь, самый последний) JDK для своей системы! :)

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

И установить с настройками по умолчанию:

  • «C: \ Program Files \ Java \ jdk1.7.0 \» (JDK)
  • «C: \ Program Files \ Java \ jre7 \» (JRE) <--- почему он запросил новую папку установки? это JRE!

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

После установки дважды проверьте «C: \ Program Files \ Java», чтобы увидеть обе эти папки. Теперь вы знаете, кто они и почему они там.

Я знаю, что написал это для новичков, но мне нравится знать все подробно, поэтому я надеюсь, что это поможет.

Xonatron
источник
8
этот ответ должен быть
усилен
Недавно мне пришлось установить jre для запуска другого установщика, а затем пришлось установить 32-разрядную версию, чтобы заставить работать один из других установщиков. В конце я использую версию Glassfish 4, которая, по-видимому, до сих пор не обеспечивает javax.persistence. Затем оказалось, что мне нужен maven, который вы распаковываете, а затем устанавливаете некоторые переменные окружения. Какой беспорядок!
JonnyRaa
Мне кажется, что Java SE и Java SDK - это один и тот же пакет.
Galmok
20

Краткая и, возможно, неправильная история версий Java

  • Java - это платформа. Он состоит из двух продуктов - комплекта разработки программного обеспечения и среды выполнения.

  • Когда Java был впервые выпущен, он, по-видимому, просто назывался Java . Если вы были разработчиком, вы также знали версию, которая была обычной «1.0» и позже «1.1». Два продукта, которые были частью платформы, также получили названия:

    • JDK - "Java Development Kit"
    • JRE - "Java Runtime Environment"
  • Видимо, изменения в версии 1.2 настолько значительны, что они стали называть платформу Java 2 .

    • «Распределение» платформы по умолчанию было присвоено прозвищу «стандарт», чтобы противопоставить его своим братьям и сестрам. Итак, у вас было три платформы:

      • «Java 2 Standard Edition (J2SE)»
      • «Java 2 Enterprise Edition (J2EE)»
      • «Java 2 Mobile Edition (J2ME)»
    • JDK был официально переименован в «Java 2 Software Development Kit».

  • Когда вышла версия 1.5, костюмы решили, что им нужно «переименовать» продукт. Таким образом, платформа Java получила две версии - версию продукта «5» и версию разработчика «1.5» (да, правило явно упоминается - «отбросьте« 1 »). Однако« 2 »было сохранено в Итак, теперь платформа официально называется «Java 2 Platform Standard Edition 5.0 (J2SE 5.0)» .

    • Иски также поняли, что сообщество разработчиков не собиралось переименовывать JDK. Но вместо того, чтобы отменить свое изменение, они просто решили удалить «2» из названия отдельных продуктов, которые теперь называются «J2SE Development Kit 5.0 (JDK 5.0)» и «J2SE Runtime Environment 5.0 (JRE 5.0)» .
  • Когда вышла версия 1.6, кто-то понял, что иметь два числа в имени было странно. Поэтому они решили полностью удалить 2 (и суффикс ".0"), и в итоге мы получили "Платформу Java, Standard Edition 6 (Java SE 6)", содержащую "Java SE Development Kit 6 (JDK 6)" и "Среда выполнения Java SE 6 (JRE 6)" .

  • Версия 1.7 не сделала ничего глупого. Если бы мне пришлось угадывать, следующим большим изменением было бы удаление "SE", чтобы цикл завершился, и JDK снова получил название "Java Development Kit".

Ноты

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

  • Так что, похоже, возникают проблемы при отображении вложенных списков.

Ссылки

эпилог

Просто бросьте "1" из версий, напечатанных javac -versionи java -versionи вы готовы.

Manav
источник
3
Святая корова. Я думал, что только у Microsoft были сумасшедшие бездомные, составляющие названия продуктов.
Конюшня
2
Это безумие. Я никогда не мог понять их без необходимости искать их каждый раз.
Прит Сангха
4

С выпуском Java 5 версия продукта отличалась от версии для разработчиков, как описано здесь

Инструментарий
источник
3

Java SE Runtime предназначена для конечного пользователя, поэтому вам нужна версия Java JRE, первая версия Java была 1, затем 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 и т. Д., И обычно каждая версия названа по версии, поэтому JRE 6 означает Java jre 1.6, в любом случае есть версия обновления, например 1.6 update 45, которая называется java jre 6u45.

Из того, что я знаю, они предпочли использовать число 6 вместо 1.6, чтобы лучше отражать уровень зрелости, стабильности, масштабируемости, безопасности и т. Д.

марио
источник