如何在Windows上安装OpenJDK 11?


269

过去,Oracle曾经为Windows发布可执行安装程序,该安装程序将:

  • 解压缩文件
  • 添加表明已安装版本和路径的注册表项
  • 将JRE添加到系统PATH
  • 在Windows上注册卸载程序。

从Java 11开始,Oracle的Java免费版本(Oracle OpenJDK)似乎未包含安装程序。它只是一个包含二进制文件的zip文件。

鉴于上述集成不再存在,我们应该如何在Windows上安装OpenJDK 11?他们不是有必要吗?


1
从未真正需要更改注册表。而且,当不操作系统时,您也不需要卸载程序。
Holger

1
@Gili使用JAVA_HOME环境变量或通过像IntelliJ IDEa这样的配置中的直接路径进行操作吗?
米哈伊尔·霍洛德科夫

13
有一个社区项目ojdkbuild,它为OpenJDK提供Windows安装程序。JDK 11目前尚不可用,但我希望我们能尽快得到它。
ZhekaKozlov

1
@Gili wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F#Find_the_JVM注意注册表在任何地方都不会出现……
Holger

1
@Robert很好,没有浏览器插件,控制面板,自动更新工具,也没有Ask工具栏的垃圾软件,因此没有太多安装空间了。
Holger

Answers:


337
  1. 将zip文件解压缩到一个文件夹中,例如C:\Program Files\Java\,它将创建一个jdk-11文件夹(其中bin文件夹是直接子文件夹)。您可能需要管理员权限才能将zip文件解压缩到此位置。

  2. 设置路径:

    • 选择控制面板,然后选择系统。
    • 单击高级,然后单击环境变量。
    • 将JDK安装的bin文件夹的位置添加到“系统变量”中的PATH变量中。
    • 以下是PATH变量的典型值: C:\WINDOWS\system32;C:\WINDOWS;"C:\Program Files\Java\jdk-11\bin"
  3. 设置JAVA_HOME:

    • 在系统变量下,单击新建。
    • 输入变量名称为JAVA_HOME。
    • 输入变量值作为JDK的安装路径(不包含bin子文件夹)。
    • 单击确定。
    • 单击“应用更改”。
  4. 在您的IDE中配置JDK(例如IntelliJ或Eclipse)。

你定了。

要查看它是否有效,请打开“命令提示符”,然后键入java -version并查看它是否显示您新安装的JDK。

如果您要卸载-只需撤消上述步骤即可。

注意:您也可以指向JAVA_HOMEJDK安装目录,然后将PATH变量设置为%JAVA_HOME%\bin。因此,当您想更改JDK时,只需更改JAVA_HOME变量并保持PATH原样。


9
不要忘记注册表项,例如Launch4j用于查找已安装的jre / jdk的注册表项。
罗伯特·罗伯特(Robert

2
@Lior:我知道这只是一个使用注册表项的程序。也可能有数十或数百个其他程序使用这些注册表项。
罗伯特

4
可能是这样,但是:从1.1版开始,我一直在使用Java,而没有设置注册表-因此,这不是必须的。b:Windows注册表通常被认为是一种避免的机制(例如blog.codinghorror.com/was-the-windows-registry-a-good-idea)-因此,我认为不应该使用它,如果不是专门的话需要。例如-在其中设置值的错误可能导致难以恢复的错误。
Lior Bar-

25
> 您可以将JAVA_HOME指向具有多个JDK安装的文件夹。这是完全错误的。许多程序和脚本都假定JAVA_HOME指向默认的Java安装(jdk或jre),并且它们在“%JAVA_HOME%\ bin”下搜索二进制文件。因此,您不能将JAVA_HOME指向具有多个 jdk安装的文件夹。相反,您可以将“%JAVA_HOME%\ bin;”值添加到Path。然后(安装新的JDK时),您只能更新JAVA_HOME
kool79 '18

2
@sarkasronie参见launch4j源代码:sourceforge.net/p/launch4j/git/ci/Release_launch4j-3_12/tree/…(在HKEY_LOCAL_MACHINE下)
罗伯特·罗伯特

141

AdoptOpenJDKJava社区托管的一个新网站。您可以在此处找到适用于OpenJDK 8至14的.msi安装程序,它将执行问题中列出的所有内容(解包,注册表项,PATH变量更新(和JAVA_HOME),卸载程序...)。


4
尽管正确的答案是正确的,但这是安装任何版本的JDK / JRE的便捷得多的方式
optevo

21

来自@ZhekaKozlov的评论:ojdkbuild具有适用于Windows(zipmsi)的OpenJDK构建(当前为8和11 )。


3
对我来说,这些构建没有正确设置PATH变量。至少我不能发行java -version并获得所需的输出。
hannes101 '19

1
我找不到OpenJDK msi。我将编写脚本并在今天晚些时候的答案中分享它,以提取并设置机器的PATH和JAVA_HOME。
vezenkov '19

1
@vezenkov:请在此处更新答案(出于某种原因,这是社区Wiki)和/或打开该项目的问题。
马丁·施罗德(MartinSchröder)

如果要从以前的版本升级到要接受的答案,我什至必须重新启动服务器才能在命令行上查看openjdk版本。
desiguy19年

21

使用Chocolatey数据包管理器。这是一个类似于npm的命令行工具。安装后,请使用

choco install openjdk

在提升的命令提示符下安装OpenJDK。

要将安装的版本更新为最新版本,请键入

choco upgrade openjdk

相当简单易用,尤其有助于升级到最新版本。无需手动摆弄路径环境变量。


3
请注意,这将安装最新版本:openjdk-12.0.2_windows-x64
Vadzim

如果您安装了其他Java版本,则可能要检查路径变量并删除/修改旧版本。
Ketu

1
@Vadzim choco从今天开始安装openjdk11,不提及版本,它安装openjdk-13,只是要注意,它将像其他答案一样使用AdoptOpenJDK
FIV

1

您可以使用Amazon Corretto。您可以免费使用OpenJDK的多平台,生产就绪的发行版。它带有长期支持,其中包括性能增强和安全修复。在此处查看安装说明。

您也可以从Azul检查Zulu

我还要在这里强调的一件事是Amazon Corretto和Zulu都符合TCK。您可以在此处此处看到OpenJDK构建比较。


-3

Oracle Java卸载程序不会删除所有文件。
检查“ C:\ ProgramData \ Oracle”是否存在,子目录中是否有一些Java文件。(例如:java.exe,javaw.exe)
将其删除以防止执行错误的Java文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.