Как установить OpenJDK 11 на Windows?

269

В прошлом Oracle публиковал исполняемые установщики для Windows, которые бы:

  • Распаковать файлы
  • Добавьте ключи реестра с указанием установленной версии и пути
  • Добавьте JRE в системный путь
  • Зарегистрируйте деинсталлятор в Windows.

Начиная с Java 11, бесплатная версия Oracle для Oracle ( Oracle OpenJDK ), похоже, не содержит установщика. Это просто zip-файл, содержащий двоичные файлы.

Как мы должны установить OpenJDK 11 в Windows, поскольку вышеупомянутых интеграций больше нет? Разве они не нужны?

Гили
источник
1
Изменение реестра на самом деле никогда не требовалось. И когда вы не манипулируете системой, вам также не нужен деинсталлятор.
Хольгер
1
@Gili, используя переменную среды JAVA_HOME или через прямой путь в конфигурации, как это делает IntelliJ IDEa?
Михаил Холодков
13
Существует проект сообщества ojdkbuild, который предоставляет установщики Windows для OpenJDK. JDK 11 еще не доступен, но я надеюсь, что мы получим его в ближайшее время.
Жека Козлов
1
@Gili wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F#Find_the_JVM обратите внимание на то, что реестр нигде не отображается ...
Хольгер,
1
@ Роберт, ну, без плагина браузера, панели управления, инструмента автоматического обновления или программного обеспечения на панели инструментов Ask, осталось не так много всего для установки.
Хольгер

Ответы:

339
  1. Извлеките zip-файл в папку, например, C:\Program Files\Java\и он создаст jdk-11папку (где папка bin является прямой подпапкой). Возможно, вам понадобятся права администратора, чтобы извлечь zip-файл в это место.

  2. Установить путь:

    • Выберите Панель управления, а затем Система.
    • Нажмите «Дополнительно», а затем «Переменные среды».
    • Добавьте расположение папки bin для установки JDK в переменную PATH в системных переменных.
    • Ниже приведено типичное значение для переменной PATH: C:\WINDOWS\system32;C:\WINDOWS;"C:\Program Files\Java\jdk-11\bin"
  3. Установить JAVA_HOME:

    • Под Системными переменными нажмите New.
    • Введите имя переменной как JAVA_HOME.
    • Введите значение переменной в качестве пути установки JDK (без binподпапки).
    • Нажмите ОК.
    • Нажмите Применить изменения.
  4. Сконфигурируйте JDK в вашей IDE (например, IntelliJ или Eclipse).

Вы настроены.

Чтобы увидеть, сработало ли это, откройте командную строку и введите java -versionи напечатайте, печатает ли он только что установленный JDK.

Если вы хотите удалить - просто отмените вышеуказанные шаги.

Примечание. Вы также можете указать JAVA_HOMEпапку с вашими установками JDK, а затем установить для PATHпеременной значение %JAVA_HOME%\bin. Поэтому, когда вы хотите изменить JDK, вы изменяете только JAVA_HOMEпеременную и оставляете ее PATHкак есть.

Лиор Бар-Он
источник
9
Не забудьте записи реестра, которые, например, используются Launch4j для поиска установленного jre / jdk.
Роберт
2
@Lior: это только одна программа, которую я знаю, которая использует записи реестра. Там также могут быть десятки или сотни других программ, использующих эти записи реестра.
Роберт
4
Это может быть так, но: Я работал с Java начиная с версии 1.1 без настройки реестра - так что это не обязательно. б: реестр windows обычно рассматривается как механизм, которого следует избегать (например, blog.codinghorror.com/was-the-windows-registry-a-good-idea ) - поэтому я не думаю, что его следует использовать, если не специально необходимо. Например, ошибка, указав в нем значение, может привести к ошибке, которую трудно исправить.
Lior Bar-On
25
> Вы можете указать JAVA_HOME в папку, где у вас есть несколько установок JDK . Это совершенно неправильно. Многие программы и сценарии предполагают, что JAVA_HOME указывает на установку Java по умолчанию (jdk или jre), и ищут двоичные файлы в папке "% JAVA_HOME% \ bin". Таким образом, вы НЕ МОЖЕТЕ указать JAVA_HOME на папку с несколькими установками jdk. Вместо этого вы можете добавить в путь значение "% JAVA_HOME% \ bin;" а затем (когда установлен новый JDK) вы можете обновить только JAVA_HOME
kool79
2
@sarkasronie. См. исходный код launch4j: sourceforge.net/p/launch4j/git/ci/Release_launch4j-3_12/tree/… (в разделе HKEY_LOCAL_MACHINE)
Роберт
142

AdoptOpenJDK - это новый веб-сайт, размещенный сообществом java . Там вы найдете установщики MSI для OpenJDK с 8 по 14, которые будут выполнять все перечисленные в вопросе вещи (распаковка, ключи реестра, обновление переменных PATH (и JAVA_HOME), удаление ...).

Pimgd
источник
5
Хотя принятый ответ правильный, это гораздо более удобный способ установки любой версии JDK / JRE
optevo
21

Из комментария @ZhekaKozlov: ojdkbuild имеет сборки OpenJDK (в настоящее время 8 и 11) для Windows ( zipи msi).

Мартин Шредер
источник
3
Для меня эти сборки не устанавливали переменные PATH должным образом. При аренде я не могу оформить java -versionи получить желаемый результат.
hannes101
1
Я не могу найти OpenJDK MSI. Я сделаю сценарий и поделюсь им в ответе сегодня вечером, который извлекает и устанавливает PATH и JAVA_HOME для машины.
Везенков
1
@vezenkov: Обновите ответ здесь (это вики сообщества по определенной причине) и / или откройте вопрос с проектом, пожалуйста.
Мартин Шрёдер
Чтобы добавить к принятому ответу, если вы выполняли обновление с предыдущей версии, мне даже пришлось перезапустить сервер, чтобы увидеть, как версия openjdk обновляется в командной строке.
Desiguy
21

Используйте менеджер пакетов Chocolatey . Это инструмент командной строки, похожий на npm. После того, как вы установили его, используйте

choco install openjdk

в командной строке с повышенными привилегиями для установки OpenJDK.

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

choco upgrade openjdk

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

Тобиас
источник
3
Обратите внимание, что при этом будет установлена ​​последняя версия: openjdk-12.0.2_windows-x64
Vadzim
если у вас установлены другие версии Java, вы можете проверить переменные пути и удалить / изменить старую версию.
Кету
1
@Vadzim choco устанавливает openjdk11 на сегодняшний день, не упоминая версию, он устанавливает openjdk-13 и просто отметим, что он будет использовать AdoptOpenJDK, как и в других ответах
FIV
1

Вы можете использовать Amazon Corretto . Это свободно использовать мультиплатформенный, готовый к производству дистрибутив OpenJDK. Он поставляется с долгосрочной поддержкой, которая будет включать улучшения производительности и исправления безопасности. Проверьте инструкции по установке здесь .

Вы также можете проверить Зулу из Азула .

Еще одна вещь, которую я хотел бы подчеркнуть, это то, что Amazon Corretto и Zulu соответствуют требованиям TCK. Вы можете увидеть сравнение сборок OpenJDK здесь и здесь .

Swapnil
источник
-3

Oracle Java деинсталлятор не удаляет все файлы.
Проверьте, существует ли «C: \ ProgramData \ Oracle», есть ли файлы java в подкаталоге. (ex: java.exe, javaw.exe)
Удалите его, чтобы предотвратить выполнение неправильных файлов Java.

craftwar
источник