在过去,Oracle曾经发布一个可执行的Windows安装程序,它将:

解压缩文件 添加注册表项,指示已安装的版本和路径 在“系统路径”中添加JRE 在Windows上注册一个卸载程序。

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

当前面提到的集成不再存在时,我们应该如何在Windows上安装OpenJDK 11呢?难道它们不是必要的吗?


当前回答

Extract the zip file into a folder, e.g. C:\Program Files\Java\ and it will create a jdk-11 folder (where the bin folder is a direct sub-folder). You may need Administrator privileges to extract the zip file to this location. Set a PATH: Select Control Panel and then System. Click Advanced and then Environment Variables. Add the location of the bin folder of the JDK installation to the PATH variable in System Variables. The following is a typical value for the PATH variable: C:\WINDOWS\system32;C:\WINDOWS;"C:\Program Files\Java\jdk-11\bin" Set JAVA_HOME: Under System Variables, click New. Enter the variable name as JAVA_HOME. Enter the variable value as the installation path of the JDK (without the bin sub-folder). Click OK. Click Apply Changes. Configure the JDK in your IDE (e.g. IntelliJ or Eclipse).

你准备好了。

要查看它是否工作,打开命令提示符并键入java -version,看看它是否打印新安装的JDK。

如果你想卸载-只需撤消上述步骤。

注意:你也可以将JAVA_HOME指向JDK安装的文件夹,然后将PATH变量设置为%JAVA_HOME%\bin。因此,当您想要更改JDK时,只需更改JAVA_HOME变量,而保持PATH不变。

其他回答

使用Chocolatey包管理器。它是一个类似于npm的命令行工具。一旦你安装了它,使用

choco install openjdk --version=11.0

在提升的命令提示符中安装OpenJDK 11(省略——version参数以安装最新版本)。

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

choco upgrade openjdk

使用起来非常简单,尤其有助于升级到最新版本。无需手动修改路径环境变量。

Java 17 (LTS)及以上版本

对于Java 17及更高版本,您可以使用Eclipse Adoptium网站。根据他们的关于部分,Eclipse Adoptium项目是最初的AdoptOpenJDK任务的延续。

Java 11 (LTS), Java 8 - 16

对于Java 11(8到16),您可以使用AdoptOpenJDK,这是一个由Java社区托管的网站。你可以在那里找到OpenJDK 8到16的.msi安装程序,它将执行问题中列出的所有事情(解包、注册表键、PATH变量更新(和JAVA_HOME)、卸载程序……)

https://www.openlogic.com/openjdk-downloads允许我选择32位版本的OpenJDK8(不要问- Arduino IDE不使用11编译),我认为他们只是围绕AdoptOpenJDK MSIs,但我在AdoptOpenJDK上找不到32位发行版。

你可以使用亚马逊Corretto。可以免费使用多平台、产品就绪的OpenJDK发行版。它提供了长期支持,包括性能增强和安全修复。请查看此处的安装说明。

你也可以从Azul检查祖鲁语。

我想在这里强调的另一件事是亚马逊Corretto和Zulu都是TCK兼容的。您可以在这里和这里看到OpenJDK构建的比较。

除了上面的答案之外,值得注意的是,您必须将JDK Path条目移动到Path的顶部