Как установить java 11 на windows 10

Обновлено: 06.07.2024

Здесь есть все, что вам нужно знать о различных версиях и функциях Java.

Примечание переводчика
09 апреля 2020 г. Марко опубликовал новую версию Руководства, в которую добавлено описание Java 14.
Перевод новой версии Руководства предлагается Вашему вниманию.

Исходная информация

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

Если вы хотите узнать больше о конкретной версии, перейдите на сайт AdoptOpenJDK, выберите последнюю версию Java, загрузите и установите ее. Затем вернитесь к этому руководству и узнайте еще кое-что о разных версиях Java.

Какую версию Java я должен использовать?

По состоянию на сентябрь 2019 года Java 13 является последней выпущенной версией Java, с новыми версиями, выходящими каждые 6 месяцев — Java 14 запланирована на март 2020 года, Java 15 на сентябрь 2020 года и т.д. В прошлом циклы выпуска Java были намного длиннее, до 3-5 лет!


С появлением такого количества новых версий в действительности имеются следующие основные сценарии использования:

  • Унаследованные проекты в компаниях часто связаны с использованием Java 8 (см. Раздел «Почему компании все еще застревают на Java 8?» Ниже). Таким образом, вы также будете вынуждены использовать Java 8.
  • Некоторые унаследованные проекты даже работают на Java 1.5 (выпущен в 2004 г.) или 1.6 (выпущен в 2006 г.) — сожалею, друзья!
  • Если вы уверены, что используете самые последние IDE, интегрированные среды и инструменты сборки и запускаете новый проект, вы можете без колебаний использовать Java 11 (LTS) или даже самую последнюю версию Java 13.
  • Есть специальная область разработки Android, где Java в основном застряла на версии Java 7, с доступом к определенному набору функций Java 8. Но вы можете переключиться на использование языка программирования Kotlin.

Почему компании все еще застряли на Java 8?

Существует множество разных причин, по которым компании все еще придерживаются Java 8. Вот некоторые из них:

  • Инструменты сборки (Maven, Gradle и т.д.) и некоторые библиотеки изначально имели ошибки с версиями Java версий> 8 и нуждались в обновлениях. Даже сегодня, например, с Java 9+, некоторые инструменты сборки выводят предупреждения «reflective access» при создании проектов Java, которые просто «не готовы», даже если со сборкой все в порядке.
  • До Java 8 вы в основном использовали JDK-сборки Oracle, и вам не нужно было заботиться о лицензировании. Однако в 2019 году Oracle изменила схему лицензирования, что привело к тому, что Интернет сошел с ума, сказав, что «Java больше не является бесплатной», — и последовало значительное замешательство. Однако на самом деле это не проблема, о чем вы узнаете в разделе «Дистрибутивы Java» данного руководства.
  • В некоторых компаниях действуют политики, позволяющие использовать только версии LTS, и полагаются на поставщиков своих ОС для предоставления этих сборок, что требует времени.

Подводя итог, у вас есть сочетание практических вопросов (обновление ваших инструментов, библиотек, фреймворков) и политических проблем.

Почему некоторые версии Java называются 1.X?

Java до версии 9 просто имела другую схему именования. Итак, Java 8 также может называться 1.8, Java 5 может называться 1.5 и т.д. Когда вы выполнили команду java -version с этими версиями, вы получили такой вывод:

Это просто означает Java 8. С переходом к основанным на времени выпускам с Java 9 также изменилась схема именования, и версии Java больше не имеют префикса 1.x. Теперь номер версии выглядит так:

В чем разница между версиями Java?

Должен ли я изучать конкретную?

Придя из других языков программирования с большими перерывами между выпусками, как, например, Python 2–3, вы можете спросить, применимо ли это к Java.

Очевидно, что это не работает наоборот, скажем, ваша программа использует функции Java 13, которые просто недоступны в Java 8 JVM.

Это означает несколько вещей:

  • Вы не просто «изучаете» конкретную версию Java, например Java 12.
  • Скорее, вам нужно получить хорошую основу для всех языковых возможностей вплоть до Java 8.
  • И затем, из этого руководства вы можете узнать, какие дополнительные функции появились в Java 9-13, чтобы использовать их всегда, когда это возможно.

Каковы примеры этих новых возможностей новых версий Java?

Но, как правило: старые, более длинные циклы выпуска (3-5 лет, вплоть до Java 8) означали множество новых функций в каждом выпуске.

Шестимесячный цикл выпуска означает меньшее количество функций на выпуск, поэтому вы можете быстро освоить языковые функции Java 9-13.

В чем разница между JRE и JDK?

До сих пор мы говорили только о Java. Но что именно означает «Java»?

Во-первых, вам нужно провести различие между JRE (Java Runtime Environment) и JDK (Java Development Kit).

Исторически, вы загружали только JRE, если вас интересовали только программы Java. JRE включает, помимо прочего, виртуальную машину Java (JVM) и инструмент командной строки «java».

Для разработки новых программ на Java вам нужно было загрузить JDK. JDK включает в себя все, что есть в JRE, а также компилятор javac и несколько других инструментов, таких как javadoc (генератор документации Java) и jdb (отладчик Java).

Теперь, почему я говорю в прошедшем времени?

Вплоть до Java 8 веб-сайт Oracle предлагал JRE и JDK в качестве отдельных загрузок, хотя JDK также всегда включал JRE в отдельной папке. В Java 9 это различие практически исчезло, и вы всегда загружаете JDK. Структура каталогов JDK также изменилась, так как в ней больше не было явной папки JRE.

Таким образом, хотя некоторые дистрибутивы (см. Раздел «Дистрибутивы Java») по-прежнему предлагают отдельную загрузку JRE, похоже, существует тенденция предлагать только JDK. Следовательно, теперь мы будем использовать Java и JDK взаимозаменяемо.

Как мне установить Java или JDK?

На данный момент не обращайте внимания на образы Java-Docker, оболочки MSI или пакеты для конкретной платформы. В конце концов, Java — это просто файл .zip; ни больше ни меньше.

Поэтому все, что вам нужно сделать, чтобы установить Java на свой компьютер, — это разархивировать файл jdk-.zip. Вам даже не нужны права администратора для этого.

Ваш распакованный файл Java будет выглядеть так:

Магия происходит в каталоге / bin, который в Windows выглядит следующим образом:

Поэтому все, что вам нужно сделать, это разархивировать этот файл и поместить каталог /bin в переменную PATH, чтобы вы могли вызывать команду java из любого места.

В случае, если вам интересно, установщики с графическим интерфейсом, такие как Oracle или AdoptOpenJDK, выполняет распаковку и изменение переменной PATH вместо вас.

Чтобы убедиться, что вы правильно установили Java, вы можете просто выполнить команду java -version. Если вывод выглядит так, как показано ниже, вы готовы!

Теперь остался один вопрос: откуда вам взять этот .zip файл с Java? Что подводит нас к теме дистрибутивов.

Дистрибутивы Java

Существует множество сайтов, предлагающих загрузку Java (читай: JDK), и неясно, «кто что предлагает и с каким лицензированием». Этот раздел проливает свет на это.

Проект OpenJDK

С точки зрения исходного кода Java (читай: исходный код вашего JRE / JDK) есть только один — на сайте проекта OpenJDK.

Однако это всего лишь исходный код, а не распространяемая сборка (подумайте: ваш файл .zip с скомпилированной командой java для вашей конкретной операционной системы). Теоретически вы и я могли бы создать сборку из этого исходного кода, назвать ее, скажем, MarcoJDK, и начать ее дистрибуцию. Но наш дистрибутив не будет сертифицирован, чтобы можно было называть этот дистрибутив совместимым с Java SE.

Вот почему на практике есть несколько поставщиков, которые фактически создают эти сборки, сертифицируют (см. TCK) и затем распространяют их.

И хотя поставщики не могут, скажем, удалить метод из класса String перед созданием новой сборки Java, они могут добавить брэндинг (вay!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.

OpenJDK (от Oracle) и сборки OracleJDK

Один из поставщиков, который создает Java из исходного кода, — это Oracle. Это приводит к двум разным дистрибутивам Java, что поначалу может быть очень запутанными.

    от Oracle (!). Эти сборки бесплатны и не имеют торговой марки, но Oracle не выпустит обновления для более старых версий, скажем, Java 13, как только выйдет Java 14. — это коммерческая сборка под брендом, выпускаемая начиная с изменения лицензии в 2019 году. Это означает, что ее можно использовать бесплатно во время разработки, но вы должны платить Oracle, если используете ее в рабочей среде. При этом вы получаете более длительную поддержку, то есть все обновления дистрибутива и номер телефона, по которому можно позвонить, если с вашей JVM будут проблемы.

Исторически (до Java 8) существовали реальные исходные различия между сборками OpenJDK и сборками OracleJDK, при этом можно было сказать, что OracleJDK был «лучше». Но на сегодняшний день обе версии практически одинаковы, с небольшими отличиями.

Впрочем все сводится к тому, что вам требуется платная коммерческая поддержка (номер телефона) для используемой версии Java.

AdoptOpenJDK

В 2017 году группа участников, разработчиков и поставщиков Java User Group (Amazon, Microsoft, Pivotal, Red Hat и другие) создала сообщество под названием AdoptOpenJDK.

Они предоставляют бесплатные надежные сборки OpenJDK с более длительной доступностью / обновлениями и даже предлагают вам выбор из двух разных виртуальных машин Java: HotSpot и OpenJ9.

Я очень рекомендую ее, если вы хотите установить Java.

Azul Zulu, Amazon Corretto, SAPMachine

Но не забудьте проверить на сайтах дистрибьюторов, чтобы узнать о преимуществах каждого отдельного дистрибутива.

Рекомендация

Как уже упоминалось в самом начале этого руководства: в сущности все (если вы не будьте слишком требовательны) функции языка Java 8 работают в Java 13. То же самое касается всех других версий Java между ними.

В свою очередь, это означает, что знание всех языковых функций Java 8 дает хорошую базу в изучении Java, а все остальные версии (Java 9-13) в значительной степени дают дополнительные функции поверх этого базового уровня.

Вот краткий обзор того, что конкретные версии могут предложить:

Java 8

Java 8 была массовым выпуском, и вы можете найти список всех функций на веб-сайте Oracle. Здесь я хотел бы упомянуть два основных набора функций:

Особенности языка: лямбды и т.д.

До Java 8 всякий раз, когда вы хотели создать экземпляр, например, нового Runnable, вы должны были написать анонимный внутренний класс, например, так:

С лямбдами тот же код выглядит так:

Вы также получили ссылки на методы, повторяющиеся аннотации, методы по умолчанию для интерфейсов и некоторые другие языковые функции.

Коллекции и потоки

В Java 8 вы также получили операции в функциональном стиле для коллекций, также известные как Stream API. Быстрый пример:

До Java 8, вам нужно было написать циклы for, чтобы что-то сделать с этим списком.

С помощью API Streams вы можете сделать следующее:

Java 9

Java 9 также была довольно большой версией, с несколькими дополнениями:

Коллекции

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

Streams

Потоки получили несколько дополнений, в виде методов takeWhile, dropWhile и iterate.

Optionals

Optionals получили метод ifPresentOrElse, которого крайне не хватало.

Интерфейсы

Интерфейсы получили private методы:

Другие возможности языка

И пара других улучшений, таких как улучшенный оператор try-with-resources или расширения diamond оператора.

JShell

Наконец, в Java появилась оболочка, в которой вы можете попробовать простые команды и получить немедленные результаты.

В Java 9 у Java появился собственный современный клиент — хотя он находится в режиме превью, что означает, что он может быть изменен в более поздних версиях Java.

Проект Jigsaw: модули Java и файлы Jar с несколькими выпусками

Java 9 получила Jigsaw Module System, которая чем-то напоминает старую добрую спецификацию OSGI. Целью данного руководства не является подробное описание Jigsaw — посмотрите предыдущие ссылки, чтобы узнать больше.

Файлы Multi-Release .jar позволили создать один файл .jar, содержащий разные классы для разных версий JVM. Таким образом, ваша программа может вести себя по-разному / иметь разные классы, используемые при запуске на Java 8 и на Java 10, например.

Java 10

В Java 10 было несколько изменений, таких как сборка мусора и т.д. Но единственное реальное изменение, которое вы, как разработчик, вероятно, заметите, — это введение ключевого слова var, также называемого выводом типа локальной переменной.

Вывод типа локальной переменной: ключевое слово var

Чувствуете себя как в Javascript-е, не так ли? Однако Java все еще строго типизирован и var применяется только к переменным внутри методов (спасибо, dpash, за то, что снова указал на это).

Java 11

Java 11 также была несколько меньшей версией с точки зрения разработчика.

Строки и файлы

Строки и файлы получили несколько новых методов (не все перечислены здесь):

Запустить исходные файлы

Начиная с Java 10, вы можете запускать исходные файлы Java без предварительной компиляции. Шаг к написанию сценариев.

Вывод типа локальной переменной (var) для лямбда-параметров

В заголовке все сказано:

Другие вкусности

Flight Recorder (Регистратор полетов), сборщик мусора No-Op, Nashorn-Javascript-Engine объявлен deprecated (устаревшим) и т.д.

Java 12

В Java 12 появилось несколько новых функций и исправлений, но здесь стоит упомянуть только поддержку Unicode 11 и превью нового выражения switch, о котором вы узнаете в следующем разделе.

Java 13

Вы можете найти полный список возможностей здесь, но, по сути, вы получаете поддержку Unicode 12.1, а также две новые или улучшенные превью функции (могут быть изменены в будущем):

Switch выражение (Preview — предварительная версия)

Выражения переключателя теперь могут возвращать значение. И вы можете использовать лямбда-стиль синтаксиса для своих выражений, без проблем с ошибками:

Старые операторы switch выглядели так:

В то время как в Java 13 операторы switch могут выглядеть так:

Многострочные строки (превью)

Наконец-то вы можете сделать это на Java:

Java 14 и позже

Будет рассмотрено здесь, как только их выпустят. Зайдите в ближайшее время!

Вывод

К настоящему времени у вас должен быть довольно хорошее представление о нескольких вещах:

  • Как установить Java, какую версию получить и где ее получить (подсказка: AdoptOpenJDK).
  • Что такое дистрибутив Java, какие существуют и в чем различия.
  • Каковы различия между конкретными версиями Java.

Обратная связь, исправления и случайный ввод всегда приветствуются! Просто оставьте комментарий внизу.

Спасибо за прочтение!

Там больше, откуда это появилось

Благодарности

Стивен Колебурн написал фантастическую статью о различных доступных дистрибутивах Java. Спасибо, Стивен!

В этой статье описывается, как установить Microsoft Build OpenJDK. Чтобы получить файлы, указанные в этой статье, см. статью Загрузка сборки Microsoft OpenJDK.

ZIP и TAR. Пакеты GZ

для Windows, Linux и macOS мы создаем ZIP (Windows) и TAR. Пакеты GZ (Linux/macOS). Чтобы установить, извлеките один из этих пакетов в выбранную папку, а затем задайте JAVA_HOME для переменной среды эту папку.

Кроме того, можно использовать собственные установщики для вашей ОС, как описано в следующем разделе.

Собственные установщики

для Windows мы создаем установщик MSI с графическим интерфейсом. Для macOS мы создаем установщик PKG с аналогичными функциями. Эти установщики автоматически делают средства JDK доступными в PATH .

Для Linux мы создаем пакеты DEB и RPM для использования с apt и rpm .

В следующих разделах приведены инструкции для этих установщиков.

Установка в Windows

для установки на любой версии Windows можно использовать пакеты MSI или ZIP-пакет. если вы используете Windows 10 или более поздней версии, вы можете использовать Диспетчер пакетов Windows из Терминал Windows.

Установка с помощью MSI

Установщик MSI предоставляет как графический, так и консольный метод установки. если дважды щелкнуть файл MSI, он запустит установщик Windows приложения традиций, где можно следовать инструкциям на экране.

Для развертывания видескале можно установить MSI в командной строке, выполнив следующие действия.

Выберите компоненты, которые необходимо установить, из следующей таблицы:

Компонент Описание
FeatureMain Установка ядра (по УМОЛЧАНИю)
FeatureEnvironment Обновите PATH переменную среды. ПАРАМЕТРЫ
FeatureJarFileRunWith Свяжите JAR -файлы с приложениями Java. ПАРАМЕТРЫ
FeatureJavaHome Обновите JAVA_HOME переменную среды.
FeatureOracleJavaSoft Обновляет разделы реестра HKLM\SOFTWARE\JavaSoft\ .

Можно использовать FeatureOracleJavaSoft для предотвращения запуска Oracle Java из пути при удалении Microsoft Build of OpenJDK. Переустановите Oracle Java, если необходимо восстановить разделы реестра Oracle.

Можно использовать необязательные параметры, которые группируют некоторые компоненты вместе, как показано в следующем примере:

Выполните команду msiexec Command на целевой рабочей станции. Используйте выбранные функции, как показано в следующем примере.

Необходимо использовать INSTALLDIR с FeatureMain .

В этом примере выполняется автоматическая установка Microsoft Build OpenJDK, обновление PATH , связывание PATH -файлов с приложениями Java и определение JAVA_HOME .

установка с Диспетчер пакетов Windows

чтобы установить с Диспетчер пакетов Windows, сначала установите винжет, а затем откройте Терминал Windows.

Затем используйте следующую команду, чтобы найти Microsoft Build of OpenJDK Packages:

Появится результат, аналогичный указанному ниже.

Теперь можно установить пакет, обратившись к приведенному Id выше, используя следующую команду:

Эта команда выводит примерно следующий результат:

Установка в macOS

пакеты для macOS доступны через Homebrew или как автономные файлы для загрузки в PKG или TAR. В форматах GZ.

Чтобы установить последнюю версию с Homebrew:

Эта команда выводит примерно следующий результат:

Пакет microsoft-openjdk указывает на последнюю версию Microsoft Build OpenJDK.

чтобы установить другие версии с Homebrew необходимо сначала коснуться репозитория cask-versions:

Установка в macOS с TAR. GZ, просто извлеките файл в расположение. JDK будет находиться внутри <location>/jdk-<version>/Contents/Home .

Чтобы установить с помощью установщика PKG, откройте Установщик и следуйте инструкциям. По умолчанию JDK будет установлен в /Library/Java/JavaVirtualMachines/microsoft-17.jdk/Contents/Home .

Удаление в macOS

чтобы удалить сборку Microsoft OpenJDK, установленную с помощью Homebrew или PKG, выполните следующие команды:

Удаление пакета, установленного с помощью TAR. GZ, просто удалите папку.

Установка в Ubuntu

Чтобы установить в Ubuntu 18,04 LTS и 20,04 LTS, откройте терминал и выполните следующие команды:

После добавления репозитория установите Microsoft Build OpenJDK, выполнив следующие команды:

Возможно, потребуется обновить выбор по умолчанию JDK. Дополнительные сведениясм. здесь.

Установка на Debian

Debian 9

Чтобы установить на Debian 9, откройте терминал и выполните следующие команды:

После добавления репозитория выполните следующие команды:

Возможно, потребуется обновить выбор по умолчанию JDK. Дополнительные сведениясм. здесь.

Debian 10

Чтобы установить на Debian 10, откройте терминал и выполните следующие команды:

После добавления репозитория выполните следующие команды:

Возможно, потребуется обновить выбор по умолчанию JDK. Дополнительные сведениясм. здесь.

Установка на CentOS 7 (RPM)

Чтобы установить на CentOS 7, откройте терминал и выполните следующую команду:

После добавления репозитория выполните следующую команду:

Возможно, потребуется обновить выбор по умолчанию JDK. Дополнительные сведениясм. здесь.

Изменение JDK по умолчанию в Linux

Если в системе установлено несколько версий OpenJDK, используйте следующую команду, чтобы задать Microsoft Build OpenJDK в качестве значения по умолчанию:

Для CentOS можно использовать команду alternative .

Java Development Kit (сокр. JDK) – комплект разработки приложений для работы с языком программирования java. Включает в себя: интерпретатор, облегченный интерпретатор jre, компилятор, отладчик, java библиотеки классов, программу сбора документации, диcассемблер, программу архивации и сжатия jar.

Устанавливать Java JDK будем в 3 этапа:

  1. Загрузка с сайта пакета JDK (Java Development Kit)
  2. Установка JDK (Java Development Kit)
  3. Настройка переменных окружения

1. Загрузка с сайта пакета JDK (Java Development Kit)

Переходим на сайт Oracle по ссылке и выбираем JDK (Download)


На следующей странице нужно согласится с условиями и загрузить пакет соответствующий нашей ОС. В моём случае это 64-разрядная Windows 10.

JDK-2

2. Установка JDK (Java Development Kit)

Запускаем установщик с правами администратора и устанавливаем всё по умолчанию, ничего не меняя в процессе.


3. Настройка переменных окружения

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



Далее необходимо отредактировать значение переменной PATH, добавив туда путь к директории, где находятся исполняемые файлы Java, то есть


4. Тест конфигурации

Открываем командную строку и вводим:

Выводит директорию где установлено Java JDK.

Выведет версию java-компилятора, если переменная PATH установлена ​​правильно.

Хочу тебя поприветствовать, в первой статье из серии по разработке на языке программирования Java. Да, ты прав, это очередной курс по программированию, которых и так как грязи в разных форматах, но данную серию статей принципиально делать как для себя, то есть качественно, будет много практики, постараюсь вложить интересных фишек которые не освещаются в подобных курсах, думаю ты оценишь.

Историю создания и развитие смысла рассматривать нет, более того на сайте wiki есть хорошая статье про это. Да и концепцию объектно-ориентированного программирования(ООП) поговорим в другой статье.

В этой статье мы будем по полной инсталить программное обеспечение разработчика.

Отлично. Теперь, в верхней части сайта находится меню, жмякаем по пункту "Products".

Раскроется подробное меню в котором ищем то за чем мы здесь собрались, собственно "Java", жмякаем.

И так, перед тобой страничка Java, компания Oracle заботливо разместила хвалебную информацию о своем продукте, ну да, там есть кое-что по делу, но пока это не главное, наша цель дистрибутив.

Жмякай на кнопочку "Download Java".

Терпение, еще немного и дистрибутив наш. Осталось дело за малым, выбрать версию Java. В момент выхода статьи последняя актуальная версия является Java SE 15.0.1 (Oracle нам любезно об этом сообщает : " Java SE 15.0.1 is the latest release for the Java SE Platform " транслит м@ть его -> " Java SE 15.0.1-это последняя версия платформы Java SE " ). В твоем случае версия может отличаться(то есть быть выше), но это не критично.

Как ты уже понял, на сайте представлено несколько версий, предвидя твой вопрос(Зачем?), отвечу последняя актуальная версия говорит нам о том что в ней присутствуют все самые новые фишки анонсированные компанией Oracle. Так скажем новая редакция с новыми функциями, но есть и минус, возможны ошибки в работе Java. Если ты только начал свой путь на данном языке, то эта версия нас устроит, в противном случае есть версия LTS(Long Time Support) - поддержка в течение длительного времени. Это значит что LTS стабильнее и надежнее в плане работы, разработчики компании Oracle особо не экспериментируют с новыми возможностями, а улучшают то что присуще для этой версии. LTS подходит для компаний создающие коммерческие продукты, в моем случае - это Java SE 11 (LTS) . Ко всему выше изложенному, добавлю про популярную версию своего времени Java SE 8 , по настоящий день очень много коммерческих проектов реализовано с ее помощью, если ты устроишься работать в компанию на должность Java-разработчика, то велик шанс что придется иметь дело именно с версией Java SE 8. Кстати и ее так же можно скачать. (начиная с версии Java SE 7 доступны для загрузки)

Читайте также: