java версії і як не плутати з ними


0

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

Яку версію JRE і JVM я маю і яка остання?

Тепер перед тим, як почути, як мені сказати "google it", я вже пішла на ґуґл. Тому моя плутанина.

В домашня сторінка java він говорить:

На вкладці Загальні в панелі керування Java, версія   доступні через розділ Про. З'явиться діалогове вікно (після натискання   Про), показуючи версію Java.

Ну, я зробив це, і я маю Версію 8 Update 71.

на цій домашній сторінці також зазначено:

JRE і JDK є окремими і можуть співіснувати у вашій системі. Тільки один   JRE можна встановити на Mac. Може бути декілька JDK, встановлених на   стільки, скільки хочете.

Добре, я це вже знаю. Тому я роблю те, що вони кажуть, щоб отримати версію з терміналу, і я отримаю

java -version
java version "1.8.0_71"
Java(TM) SE Runtime Environment (build 1.8.0_71-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)

Добре, здається те ж саме. Тепер постає питання:

Яку версію я маю? Я маю на увазі версію 8 - версію JRE? чи це версія JVM? На домашній сторінці, хоча вони розрізняють їх (як цитата), інструкція для отримання версії так само!

Щоб навіть ускладнити справу, я йду Вікіпедія і там говориться, що поточні підтримувані версії - Java 8 і Java 11. Чому два? і що сталося з 9 і 10? І знову ж таки, ці JRE або JVM?

Чи може хтось пояснити це мені?

Відповіді:


1

Мені здається, що на ваші запитання відповідає одна й та ж стаття Вікіпедії:

Java 8 і Java 11 підтримуються в даний час довгострокову підтримку Версія (LTS), а Java 10 - попередня підтримувана версія швидкого випуску. Підтримка Java 10 закінчилася на той самий день, коли почалася підтримка Java 11, у вересні 2018 року. Java 7 більше не публічно підтримується, Java 9 припинив отримувати оновлення. оскільки Java 9 була короткостроковою швидкою версією, яка була замінена Java 10, і "кінець публічних оновлень" для Java 8 заплановано на січень 2019 для комерційного використання, а не раніше грудня 2020 року для некомерційного використання. Для Java 11 Oracle не надаватиме довгострокову підтримку; натомість, очікується, що ця спільнота виконуватиме ширше співтовариство OpenJDK, як AdoptOpenJDK.

Так, версії 9 і 10 були недовгими. Я припускаю, що це були зупинки які були викинуті у відповідь на серйозні помилки безпеки.

Версія 8 - остання версія, яка все ще підтримується Oracle і розділена на JDK і JRE. Версія 11, здається, скинула цей поділ і має тільки уніфікована версія JDK на основі OpenJDK, тому вона може не мати продуктивність удосконалень, знайдених в платній версії Java Oracle.

Для того, щоб дізнатися, які версії у вас на Linux, я думаю, що ви можете запитувати встановлені пакунки.

У Windows можна знайти цю інформацію в реєстрі для 32-розрядних і 64-бітних на:

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft
  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft

Ви також можете знайти цю інформацію Панель керування & gt; Java (32-біт) або Панель керування & gt; Java (64-біт) :

enter image description here


Дякую. Я використовую Mac. Цікаво, як знайти JDK і JRE там
KansaiRobot

Дякую! (до речі, я ніколи не призначаю жодної відповіді, це не в моєму характері :)
KansaiRobot

Дякую. Перша частина моєї відповіді все ще корисна, і я залишу другу частину для користувачів Windows.
harrymc

@kansai Я сподіваюся, що якщо хтось посилає неправильну відповідь, ви допоможете іншим з нас знати, що шляхом голосування його. Голосування, як вгору, так і вниз, є важливою частиною того, як ми допомагаємо один одному виявляти корисні відповіді. Дякуємо за участь.
Twisty Impersonator

@TwistyImpersonator: неправильна відповідь на один плакат може бути правильною для іншого. Я не держу з відповідями. Якщо хтось прийшов до зусиль мислення відповіді і розмістив її, він не повинен бути покараний за його зусилля, а скоріше заохочувати продовжувати.
harrymc

0

Ви заплутуєте деякі терміни, і ви знаходитесь на Mac, де Oracle збентежив деякі з них.

Є, я думаю, 4 різні речі.

  1. JVM (Java Virtual Machine) це у всіх випусках Java і є виконуваним файлом, який запускає файли класів Java. Він не може бути завантажений безпосередньо, але є частиною інших 3 пунктів. java -version показує версію, яку ви використовуєте.

  2. JDK (комплект для розробки Java) Це потрібна вам установка, якщо ви пишете програми. Вона включає компілятор та інші інструменти. Для macOS з Oracle-релізами це єдине завантаження, яке надає середовище для запуску / usr / bin / java

  3. JRE (середовище виконання Java). У випусках Java, Linux і Apple Java це забезпечує мінімальний вибір файлів, необхідних для виконання програми Java з командного рядка. Це, здається, не існує як частина випуску Oracle macOs, однак це середовище виконання Java (TM) SE показано версією Java.

  4. JRE (середовище виконання Java) на MacOS. З Oracle це середовище, яке запускає Java-аплети у вашому браузері. Це JRE, що ви можете мати тільки один з на вашому Mac. Це також те, що видно та оновлено панеллю керування Java в Системних настройках.

Таким чином, на MacOS з командного рядка ви встановлюєте JDK, який включає JRE і включає JVM, і ви можете мати багато їх версій. Існує також окремий JRE (не той самий, що і командний рядок), який запускає аплети у вашому браузері і знаходиться на панелі керування Java, і ви можете мати лише один з них.

Що стосується номерів версій тощо. Наскільки я розумію після версії 8, вони змінюють нумерацію версій. Вікіпедія говорить

У вересні 2017 року Марк Райнхольд, головний архітектор платформи Java, запропонував змінити поїзд випуску до "одного випуску функцій кожні шість місяців", а не поточного дворічного графіка, [1] [2], а пізніше пропозиція набула чинності .

Таким чином, 9,10 були замінені на 11, а 12 - на березень 2019 - див https://en.wikipedia.org/wiki/Java_version_history для термінів і en підтримки.

Щоб знайти JVM, які можна використовувати в командному рядку /usr/libexec/java_home -V

я отримав

/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
Matching Java Virtual Machines (6):
11.0.1, x86_64: "OpenJDK 11.0.1"    /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_171, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
1.8.0_92, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
1.8.0_77, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home

Щоб встановити та вибрати JDK https://stackoverflow.com/questions/52524112/how-do-i-install-java-11-on-mac-osx-allowing-version-switching

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