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 Runtime Environment ("build 1.6.0_07-b06") та версію HotSpot (для моєї, це " build 10.0-b23, mixed mode") Я підозрюю, що "11.0", який ви бачите, - це версія HotSpot.

Оновлення: HotSpot є (або раніше був, тепер, здається, він використовує його для позначення всієї ВМ), щойно вчасно встановлений компілятор, вбудований у віртуальну машину Java. Бог знає лише, чому Sun дає йому окремий номер версії.


7
Отже, у чому різниця між JVM 1.6 та JVM 11.0? Що таке гаряча точка?
Джо Шнайдер

Дякую, в цьому була плутанина - два різні номери версій.
Джо Шнайдер

1
Насправді HotSpot не є сукупністю. JIT означає, що компіляція відбувається перед виконанням. HotSpot спочатку використовує інтепретацію для виконання та аналізу коду, перш ніж компілювати / оптимізувати вибрані частини програми.
Джон Нільссон

174
  • JDK - Java Development Kit
  • JRE - середовище виконання Java
  • Java SE - Java Standard Edition

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

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

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


Відредаговано 2011-04-06: Світ обертається, і Java тепер керує Oracle, який купив Sun. Пізніше цього року sun.comдомен повинен затьмаритися. Нова сторінка (заснована на переспрямуванні) - це ця сторінка Java в мережі Oracle Tech Network. (Див. Також java.com .)


Відредаговано 11.01.2013: І світ продовжує повертатися (не дивлячись на 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
Вам потрібно сходити до сонця та завантажити JDK 1.6 або 6, як би там не було вказано.
Кріс Марасті-Георг

Я вважаю, що в комплекті з Java SE 6 має бути правильний JDK, незважаючи на внутрішні відмінності в кількості версій.
Джонатан Леффлер

java.sun.com/javase/downloads/index.jsp 2-й варіант, Java SE Kit 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 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 (користувачі цього потребують, це кожен користувач комп’ютера сьогодні)
  • Java SE = Java Standard Edition

Ось покрокові посилання, за якими я перейшов (один крок веде до наступного, це все для одного завантаження), щоб завантажити Java для розробки (JDK):

  1. Відвідайте "Завантаження Java SE": http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Клацніть «Завантажити JDK» та відвідайте «Завантаження Java SE 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 Kit 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: \ Програмні файли \ Java \ jdk1.7.0 \" (JDK)
  • "C: \ Program Files \ Java \ jre7 \" (JRE) <--- чому запитав нову папку встановлення? це JRE!

Пам'ятайте зверху, що JDK містить JRE, що має сенс, якщо ви знаєте, що вони обоє. Знову див. Вище.

Після установки двічі встановіть прапорець "C: \ Program Files \ Java", щоб побачити обидві ці папки. Тепер ви знаєте, що вони є і чому вони там.

Я знаю, що написав це для новачків, але мені подобається знати речі докладно, тому сподіваюся, що це допомагає.


8
цю відповідь потрібно
роздути

Нещодавно мені довелося встановити jre, щоб запустити інший інсталятор, а потім довелося встановити 32-бітну версію, щоб змусити один з інших інсталяторів працювати. Версія, яку я використовую в кінці цього, - це склолобка 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"
  • Мабуть, зміни у версії 1.2 настільки значні, що вони почали називати платформу як Java 2 .

    • За замовчуванням "розподіл" платформи було надано "стандартним", щоб порівняти її зі своїми побратимами. Отже, у вас було три платформи:

      • "Стандартне видання Java 2 (J2SE)"
      • "Java 2 Enterprise Edition (J2EE)"
      • "Мобільна версія Java 2 (J2ME)"
    • JDK було офіційно перейменовано на "Комплект для розробки програмного забезпечення Java 2".

  • Коли вийшла версія 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, стандартне видання 6 (Java SE 6)", що містить "Java SE Kit Kit 6 (JDK 6)" та "середовище виконання Java SE 6 (JRE 6)" .

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

Примітки

  • Для простоти купу знаків торгової марки було опущено. Тож припустімо Java ™, JDK ™ та JRE ™.

  • Так, схоже, виникають проблеми з наданням вкладених списків.

Список літератури

Епілог

Просто киньте "1." від версій, надрукованих javac -versionі, java -versionі ви готові йти.


3
Свята корова. Я думав, що лише у Microsoft є шалені бездомні люди, які складають назви продуктів.
Stabledog

2
Це безумство. Мені ніколи не вдалося зрозуміти це без того, щоб кожного разу чітко їх шукати.
Преет Сангха


3

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

Як я знаю, вони вважали за краще використовувати число 6 замість 1.6, щоб краще відобразити рівень зрілості, стабільності, масштабованості, безпеки та іншого

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.