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

Какая версия JRE и JVM у меня есть, а какая последняя?

Теперь, прежде чем захотеть сказать мне "Google это", я уже гуглил это. Поэтому мое замешательство.

На домашней странице Java это говорит:

На вкладке General в панели управления Java версия доступна через раздел About. Появится диалоговое окно (после нажатия «О программе»), показывающее версию Java.

Ну, я сделал это, и у меня есть Version 8 Update71.

на этой домашней странице также говорится:

JRE и JDK разделены и могут сосуществовать в вашей системе. На Mac может быть установлена только одна JRE. В системе может быть установлено несколько 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?

Может кто-то объяснить это мне?

2 ответа2

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, поэтому она может не иметь улучшений производительности, обнаруженных в платной версии Oracle Oracle.

Чтобы узнать, какие версии у вас в Linux, я полагаю, что вы можете запросить установленные пакеты.

В Windows вы можете найти эту информацию в реестре для 32-разрядных и 64-разрядных систем по адресу:

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

Вы также можете найти эту информацию в Панель управления> Java (32-разрядная версия) или Панель управления> Java (64-разрядная версия):

0

Вы путаете некоторые термины и находитесь на Mac, где Oracle также перепутал некоторые из них.

Есть я думаю 4 разные вещи.

  1. JVM(виртуальная машина Java) присутствует во всех выпусках Java и является исполняемым файлом, который запускает скомпилированные файлы классов Java. Он не может быть загружен напрямую, но является частью 3 других элементов. java -version показывает версию, которую вы используете.

  2. JDK(Java Development Kit) Это установка, которая вам нужна, если вы пишете программы. Включает в себя компилятор и другие инструменты. Для macOS с версиями Oracle это единственная загрузка, которая предоставляет среду, запускаемую из /usr /bin /java

  3. JRE(среда выполнения Java). В версиях Java для Windows, Linux и Apple это обеспечивает минимальный выбор файлов, необходимых для запуска 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, чтобы узнать о сроках и поддержке.

Чтобы найти 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .